目前kernel中直接用%p打印地址的话会被显示成ptrval,kernel 应该用用%pK来打印地址,这样就可以用kptr_restrict 这个sysctl来控制%pK是显示地址还是ptrval
这个kernel的patch在https://lwn.net/Articles/740249/
同时可以看出如果输出的是____ptrval____,说明地址是64bits.
/* Maps a pointer to a 32 bit unique identifier. */
static char *ptr_to_id(char *buf, char *end, void *ptr, struct printf_spec spec)
{
const char *str = sizeof(ptr) == 8 ? "(____ptrval____)" : "(ptrval)";