unable to find the virtual to physical mapping

Arun chandran arun.edarath at gmail.com
Tue Dec 6 01:43:16 EST 2022


Hi,

I am trying to find the virtual to physical memory mapping of a
process with kernel/linux-4.18.0-348.7.1.el8_5/tools/vm/page-types.c

a) It gives the below output for a process with pid 19721

# ./page-types -p 19721 -l | head
voffset offset  len     flags
400     108bf36 1       __RU_lA____M_______________________________
600     135bf80 1       ___U_l_____Ma_b____________________________
601     1258e11 1       ___U_l_____Ma_b____________________________
6aa     110075a 1       ___U_l_____Ma_b____________________________
7f335f72c       2741b88 4       __RU_lA____M_______________________________
7f335f730       20546b1 3       __RU_lA____M_______________________________
7f335f733       2741b3e 2       __RU_lA____M_______________________________
7f335f735       2741a20 1e      __RU_lA____M_______________________________
7f335f753       2054690 1d      __RU_lA____M_______________________________

Here the physical offsets are 28 bits. By adjusting for the 4k
pagesize I can derive a meaningful 40 bit physical address.

b) for another process it is giving
 # ./page-types -p 19694 -l | head
voffset offset  len     flags
400     3f0366  1       __RU_lA____M_______________________________
401     19a32b  1       __RU_lA____M_______________________________
402     18d702  1       __RU_lA____M_______________________________
403     3f3fe5  1       __RU_lA____M_______________________________
404     1fbaa8  1       __RU_lA____M_______________________________
405     3f3cea  1       __RU_lA____M_______________________________
406     110455  1       __RU_lA____M_______________________________
407     30a7a8  1       __RU_lA____M_______________________________
408     2eaaee  1       __RU_lA____M_______________________________

In this, all the physical offsets are only 24 bits. Why is it like that?
The flags are not showing it as a huge page also.

RAM is mapped as

 # cat /proc/iomem | grep -i ram
00001000-0009ffff : System RAM
00100000-03ffffff : System RAM
04047000-75ceffff : System RAM
76000000-9fdbb017 : System RAM
9fdbb018-9fdcc457 : System RAM
9fdcc458-9fdcd017 : System RAM
9fdcd018-9fddb857 : System RAM
9fddb858-a21f1fff : System RAM
a2245000-a2271fff : System RAM
a2273000-a66c2fff : System RAM
a99ff000-abffffff : System RAM
100000000-104fdfffff : System RAM
1050000000-204fefffff : System RAM
2050000000-304fefffff : System RAM
3050000000-404f2fffff : System RAM
4050000000-504fefffff : System RAM
5050000000-604fefffff : System RAM
6050000000-704fefffff : System RAM
7050000000-804fefffff : System RAM

How do I find out to which NUMA node's ram the physical address
"3f0366" belongs?

--Arun



More information about the Kernelnewbies mailing list