kmalloc - Address is not consecutive

wuzhouhui wuzhouhui14 at mails.ucas.ac.cn
Thu Aug 19 08:16:35 EDT 2021



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 at kernelnewbies.org
> https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies




More information about the Kernelnewbies mailing list