プロフィール

kosaki

Author:kosaki
連絡先はコチラ

ブログ検索
最近の記事
最近のコメント
最近のトラックバック
リンク
カテゴリー
月別アーカイブ
RSSフィード
FC2ブログランキング

スポンサーサイト このエントリーをはてなブックマークに追加

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


スポンサー広告 | 【--------(--) --:--:--】 | Trackback(-) | Comments(-)

/sys/kernel/debug/kernel_page_tables このエントリーをはてなブックマークに追加

なるファイルがいつの間にか出来ていた。
気づかなかった・・・・

カーネルのpteマッピングをダンプしてくれる。うーん、こういう機能をx86限定にするなよな。
フォーマットは以下で

{start_addr}-{end_addr} size usr rw flags level

フラグの意味は以下(詳しくはx86のプロセッサマニュアルをどぞ)
USR: リング0じゃない
RW: writable mapping
ro: read only mapping
PWT: write through
PCD: page cache disabled
PSE: PSEフラグがON。ようするにラージページ
pat: PATページ
GLB: global page、コンテキストスイッチでTLBフラッシュされないページ。普通あらゆるカーネルページでON。(何もマップされてない部分をのぞく)
NX: Not Execute フラグがON
x: 〃がOFF


levelは以下の種類が cr3, pgd, pmd, pte。まあ、x86の定義通り




% sudo cat /sys/kernel/debug/kernel_page_tables
---[ User Space ]---
0x(null)-0xffff800000000000 16777088T pgd
---[ Kernel Space ]---
0xffff800000000000-0xffff880000000000 8T pgd
---[ Low Kernel Mapping ]---
0xffff880000000000-0xffff880000400000 4M RW PSE GLB x pmd
0xffff880000400000-0xffff880000589000 1572K RW GLB x pte
0xffff880000589000-0xffff88000076c000 1932K ro GLB x pte
0xffff88000076c000-0xffff880000800000 592K RW GLB x pte
0xffff880000800000-0xffff880040000000 1016M RW PSE GLB x pmd
0xffff880040000000-0xffff88007fe00000 1022M RW PSE GLB NX pmd
0xffff88007fe00000-0xffff88007fee0000 896K RW GLB NX pte
0xffff88007fee0000-0xffff880080000000 1152K pte
0xffff880080000000-0xffff888000000000 510G pud
0xffff888000000000-0xffffc20000000000 58880G pgd
---[ vmalloc() Area ]---
0xffffc20000000000-0xffffc20000001000 4K RW PCD GLB NX pte
0xffffc20000001000-0xffffc20000003000 8K pte
0xffffc20000003000-0xffffc20000203000 2M RW GLB NX pte
0xffffc20000203000-0xffffc20000205000 8K pte
0xffffc20000205000-0xffffc20000305000 1M RW GLB NX pte
0xffffc20000305000-0xffffc20000307000 8K pte
0xffffc20000307000-0xffffc20000309000 8K RW GLB NX pte
0xffffc20000309000-0xffffc2000030c000 12K pte
0xffffc2000030c000-0xffffc2000030d000 4K RW PCD GLB NX pte
0xffffc2000030d000-0xffffc20000310000 12K pte
0xffffc20000310000-0xffffc20000314000 16K RW PCD GLB NX pte
0xffffc20000314000-0xffffc20000316000 8K pte
0xffffc20000316000-0xffffc20000317000 4K RW PCD GLB NX pte
0xffffc20000317000-0xffffc2000031a000 12K pte
0xffffc2000031a000-0xffffc2000031b000 4K RW PCD GLB NX pte
0xffffc2000031b000-0xffffc2000031e000 12K pte
0xffffc2000031e000-0xffffc2000031f000 4K RW PCD GLB NX pte
0xffffc2000031f000-0xffffc20000322000 12K pte
0xffffc20000322000-0xffffc20000323000 4K RW PCD GLB NX pte
0xffffc20000323000-0xffffc20000325000 8K pte
0xffffc20000325000-0xffffc20000327000 8K RW GLB NX pte
0xffffc20000327000-0xffffc2000032a000 12K pte
0xffffc2000032a000-0xffffc2000032b000 4K RW PCD GLB NX pte
0xffffc2000032b000-0xffffc2000032e000 12K pte
0xffffc2000032e000-0xffffc2000032f000 4K RW PCD GLB NX pte
0xffffc2000032f000-0xffffc20000332000 12K pte
0xffffc20000332000-0xffffc20000333000 4K RW PCD GLB NX pte
0xffffc20000333000-0xffffc20000336000 12K pte
0xffffc20000336000-0xffffc20000337000 4K RW PCD GLB NX pte
0xffffc20000337000-0xffffc2000033a000 12K pte
0xffffc2000033a000-0xffffc2000033b000 4K RW PCD GLB NX pte
0xffffc2000033b000-0xffffc2000033e000 12K pte
0xffffc2000033e000-0xffffc2000033f000 4K RW PCD GLB NX pte
0xffffc2000033f000-0xffffc20000340000 4K pte
0xffffc20000340000-0xffffc20000342000 8K RW PCD GLB NX pte
0xffffc20000342000-0xffffc20000344000 8K pte
0xffffc20000344000-0xffffc20000345000 4K RW PCD GLB NX pte
0xffffc20000345000-0xffffc20000348000 12K pte
0xffffc20000348000-0xffffc20000349000 4K RW PCD GLB NX pte
0xffffc20000349000-0xffffc2000034c000 12K pte
0xffffc2000034c000-0xffffc2000034d000 4K RW PCD GLB NX pte
0xffffc2000034d000-0xffffc20000350000 12K pte
0xffffc20000350000-0xffffc20000351000 4K RW PCD GLB NX pte
0xffffc20000351000-0xffffc20000354000 12K pte
0xffffc20000354000-0xffffc20000355000 4K RW PCD GLB NX pte
0xffffc20000355000-0xffffc20000358000 12K pte
0xffffc20000358000-0xffffc20000359000 4K RW PCD GLB NX pte
0xffffc20000359000-0xffffc2000035b000 8K pte
0xffffc2000035b000-0xffffc2000035f000 16K RW GLB NX pte
0xffffc2000035f000-0xffffc20000361000 8K pte
0xffffc20000361000-0xffffc20000364000 12K RW GLB NX pte
0xffffc20000364000-0xffffc20000366000 8K pte
0xffffc20000366000-0xffffc20000367000 4K RW GLB NX pte
0xffffc20000367000-0xffffc20000369000 8K pte
0xffffc20000369000-0xffffc20000374000 44K RW GLB NX pte
0xffffc20000374000-0xffffc20000376000 8K pte
0xffffc20000376000-0xffffc20000377000 4K RW PCD GLB NX pte
0xffffc20000377000-0xffffc2000037a000 12K pte
0xffffc2000037a000-0xffffc2000037b000 4K RW PCD GLB NX pte
0xffffc2000037b000-0xffffc2000037e000 12K pte
0xffffc2000037e000-0xffffc2000037f000 4K RW PCD GLB NX pte
0xffffc2000037f000-0xffffc20000380000 4K pte
0xffffc20000380000-0xffffc20000880000 5M RW PCD GLB NX pte
0xffffc20000880000-0xffffc20000882000 8K pte
0xffffc20000882000-0xffffc20000902000 512K RW GLB NX pte
0xffffc20000902000-0xffffc20000904000 8K pte
0xffffc20000904000-0xffffc20000d04000 4M RW GLB NX pte
0xffffc20000d04000-0xffffc20000d06000 8K pte
0xffffc20000d06000-0xffffc20001186000 4608K RW GLB NX pte
0xffffc20001186000-0xffffc20001188000 8K pte
0xffffc20001188000-0xffffc20001189000 4K RW PCD GLB NX pte
0xffffc20001189000-0xffffc2000120a000 516K pte
0xffffc2000120a000-0xffffc2000120c000 8K RW GLB NX pte
0xffffc2000120c000-0xffffc200012e0000 848K pte
0xffffc200012e0000-0xffffc200012f0000 64K RW PCD GLB NX pte
0xffffc200012f0000-0xffffc20001300000 64K pte
0xffffc20001300000-0xffffc20001800000 5M RW PCD GLB NX pte
0xffffc20001800000-0xffffc20001933000 1228K pte
0xffffc20001933000-0xffffc20001a33000 1M RW GLB NX pte
0xffffc20001a33000-0xffffc20001c00000 1844K pte
0xffffc20001c00000-0xffffc20040000000 996M pmd
0xffffc20040000000-0xffffc28000000000 511G pud
0xffffc28000000000-0xffffe20000000000 32256G pgd
---[ Vmemmap ]---
0xffffe20000000000-0xffffe20003400000 52M RW PSE GLB NX pmd
0xffffe20003400000-0xffffe20040000000 972M pmd
0xffffe20040000000-0xffffe28000000000 511G pud
0xffffe28000000000-0xffffff8000000000 29T pgd
0xffffff8000000000-0xffffffff80000000 510G pud
---[ High Kernel Mapping ]---
0xffffffff80000000-0xffffffff81000000 16M pmd
0xffffffff81000000-0xffffffff81200000 2M RW PSE GLB x pmd
0xffffffff81200000-0xffffffff81389000 1572K RW GLB x pte
0xffffffff81389000-0xffffffff8156c000 1932K ro GLB NX pte
0xffffffff8156c000-0xffffffff81600000 592K RW GLB x pte
0xffffffff81600000-0xffffffff82200000 12M RW PSE GLB x pmd
0xffffffff82200000-0xffffffffa0000000 478M pmd
---[ Modules ]---
0xffffffffa0000000-0xffffffffa0007000 28K RW GLB x pte
0xffffffffa0007000-0xffffffffa0009000 8K pte
0xffffffffa0009000-0xffffffffa000b000 8K RW GLB x pte
0xffffffffa000b000-0xffffffffa000c000 4K pte
0xffffffffa000c000-0xffffffffa000e000 8K RW GLB x pte
0xffffffffa000e000-0xffffffffa0010000 8K pte
0xffffffffa0010000-0xffffffffa0011000 4K RW GLB x pte
0xffffffffa0011000-0xffffffffa0013000 8K pte
0xffffffffa0013000-0xffffffffa0015000 8K RW GLB x pte
0xffffffffa0015000-0xffffffffa0017000 8K pte
0xffffffffa0017000-0xffffffffa0018000 4K RW GLB x pte
0xffffffffa0018000-0xffffffffa001a000 8K pte
0xffffffffa001a000-0xffffffffa001f000 20K RW GLB x pte
0xffffffffa001f000-0xffffffffa0020000 4K pte
0xffffffffa0020000-0xffffffffa0026000 24K RW GLB x pte
0xffffffffa0026000-0xffffffffa0028000 8K pte
0xffffffffa0028000-0xffffffffa002a000 8K RW GLB x pte
0xffffffffa002a000-0xffffffffa002b000 4K pte
0xffffffffa002b000-0xffffffffa002c000 4K RW GLB x pte
0xffffffffa002c000-0xffffffffa002e000 8K pte
0xffffffffa002e000-0xffffffffa002f000 4K RW GLB x pte
0xffffffffa002f000-0xffffffffa0031000 8K pte
0xffffffffa0031000-0xffffffffa0033000 8K RW GLB x pte
0xffffffffa0033000-0xffffffffa0038000 20K pte
0xffffffffa0038000-0xffffffffa003d000 20K RW GLB x pte
0xffffffffa003d000-0xffffffffa003f000 8K pte
0xffffffffa003f000-0xffffffffa0041000 8K RW GLB x pte
0xffffffffa0041000-0xffffffffa0042000 4K pte
0xffffffffa0042000-0xffffffffa0044000 8K RW GLB x pte
0xffffffffa0044000-0xffffffffa0049000 20K pte
0xffffffffa0049000-0xffffffffa004f000 24K RW GLB x pte
0xffffffffa004f000-0xffffffffa0051000 8K pte
0xffffffffa0051000-0xffffffffa0054000 12K RW GLB x pte
0xffffffffa0054000-0xffffffffa0056000 8K pte
0xffffffffa0056000-0xffffffffa005a000 16K RW GLB x pte
0xffffffffa005a000-0xffffffffa005f000 20K pte
0xffffffffa005f000-0xffffffffa007b000 112K RW GLB x pte
0xffffffffa007b000-0xffffffffa0080000 20K pte
0xffffffffa0080000-0xffffffffa0085000 20K RW GLB x pte
0xffffffffa0085000-0xffffffffa0087000 8K pte
0xffffffffa0087000-0xffffffffa008c000 20K RW GLB x pte
0xffffffffa008c000-0xffffffffa008e000 8K pte
0xffffffffa008e000-0xffffffffa0091000 12K RW GLB x pte
0xffffffffa0091000-0xffffffffa0200000 1468K pte
0xffffffffa0200000-0xffffffffff000000 1518M pmd
---[ End Modules ]---
0xffffffffff000000-0xffffffffff400000 4M pmd
0xffffffffff400000-0xffffffffff513000 1100K pte
0xffffffffff513000-0xffffffffff514000 4K RW GLB NX pte
0xffffffffff514000-0xffffffffff5fb000 924K pte
0xffffffffff5fb000-0xffffffffff5fd000 8K RW PWT PCD GLB NX pte
0xffffffffff5fd000-0xffffffffff5ff000 8K pte
0xffffffffff5ff000-0xffffffffff600000 4K USR ro PWT PCD GLB x pte
0xffffffffff600000-0xffffffffff601000 4K USR ro GLB x pte
0xffffffffff601000-0xffffffffff800000 2044K pte
0xffffffffff800000-0x(null) 8M pmd


以下、気づいたこと。
/proc/vmallocinfoとつきあわせると、vmallocエリアの詳細がもっとわかるが、PCDが大量にあるのは、ACPIまわりのマッピングだから。あと、vmallocの仕様として、1ページ分余分に仮想空間を確保するので、いちいち4kずつ穴が空いていて見にくいね。


関連記事


linux | 【2009-02-16(Mon) 00:30:21】 | Trackback:(0) | Comments:(0)
  1. 無料アクセス解析
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。