総物理メモリ量はLinuxが立ち上がってから増えたり減ったりしません (メモリは電源を落としている間に増設するものです)。 このため、page構造体の個数もLinuxが起動してから増えたり減ったりしません。 カーネル初期化時に、ポインタmem_mapで表されるアドレスから page構造体の配列が作られます。 -nオプションではmem_mapの配列の添字指定でpageを指定できます。
MAPPINGエントリはaddress_space で表示できます。 BUFFERSエントリはbuffer_head で表示できます。 ZONEエントリはzoneで表示できます。
pageのフリーリストはzoneにあります。
> page ADDR MAPPING INDEX CNT BUFFERS VIRTUAL ZONE FLAGS c1117040 ca5ee150 2a4 2 c45e3a20 c45c1000 c024f288 uptodate c1117000 ca5ee150 2a5 2 c45e3a80 c45c0000 c024f288 uptodate c1116fc0 ca5ee150 2a6 2 c45e3ae0 c45bf000 c024f288 uptodate c1116f80 ca5ee150 2a7 2 c45e3b40 c45be000 c024f288 uptodate c1145900 c53f3c70 0 2 c51756c0 c5164000 c024f288 ref uptodate active c128e600 ca3f3870 0 2 ca3a21a0 ca398000 c024f288 ref uptodate c11455c0 c53f3e50 0 2 c5175720 c5157000 c024f288 ref uptodate active c128e3c0 ca3f3a50 0 2 ca3a2380 ca38f000 c024f288 ref uptodate c1291a00 ca3f3c30 0 2 ca3a2620 ca468000 c024f288 ref uptodate checked (略) |
> page -n 0 ADDR MAPPING INDEX CNT BUFFERS VIRTUAL ZONE FLAGS c1000000 0 0 0 0 c0000000 c024f1e0 reserved |
mcrash, Copyright (C) 2002,2003 ASANO Masahiro |