On 8/19/21 6:54 PM, Lloyd wrote:
Hi,

I am trying to print the address of consecutive locations in a memory allocated using kmalloc. It prints non contiguous addresses! I tried with kmalloc_array, and  normal array on stack, I got the same  result. May I know the reason? The code fragment for array and result are given below.

uint8_t MyArray[100]={'0'};
printk(KERN_INFO "\nAddress is-> %p\n",&MyArray[0]);
printk(KERN_INFO "\nAddress is-> %p\n",&MyArray[1]);
printk(KERN_INFO "\nAddress is-> %p\n",&MyArray[2]);


[ 8684.613909]               Address is-> 00000000b3330991
[ 8684.613914]               Address is-> 000000000519068c
[ 8684.613915]               Address is-> 00000000e448ca76

Quoted from Documentation/core-api/printk-formats.rst:
A raw pointer value may be printed with %p which will hash the address
before printing. The kernel also supports extended specifiers for printing
pointers of different types.
So the address printed neither logical nor physical address.

Thanks a lot,
  Lloyd


_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies


_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

Reply via email to