技術情報

技術情報

shadow pagingとkvmにおける実装について

2009年3月15日

技術文書トップへ

コラム3

KVM shadow pagingの実装の特徴

KVM用語

・level
page tableのレベル。
page tableの段数の事で、リーフから数えてMMUのルート側に向かって1、2、3、4とつけます。

トップレベル(レベル数がもっとも大きいものを)をrootと呼びます。仮想アドレス空間にマップされるページをレベル0と呼ぶことがあります。
64bitの場合 4 level
32bit PAEの場合 3 level
32bitの場合 2 level

このようにレベルをつけるとpage tableの段数によらず、page table pageはlevel 1でpage directoryはlevel 2となり、コードを共有化する上で好都合となります。これに対応して次の定数が定義されています。
#define PT64_ROOT_LEVEL 4
#define PT32_ROOT_LEVEL 2
#define PT32E_ROOT_LEVEL 3

#define PT_DIRECTORY_LEVEL 2
#define PT_PAGE_TABLE_LEVEL 1
この用語はXenに由来すると思われます。

コード上では次の略語及び対応する型が使われています。

・gpa (gpa_t)
Guest Physical Address
・gfn (gfn_t)
Guest Frame Number
・gpte
Guest Page Table Entry
・gva (gva_t)
Guest Virtual Address
・spte
Shadow Page Table Entry
ページトップ