はじめに メモリ管理周りで勘違いしていた部分をコードを追いながら説明してみます。 概要 Q1: qemuはゲストメモリ領域をmmap(2)してるんだよね? A1: してますがコードには呼び出し箇所はありません*1。mmapはposix_memalign(3)内で呼び出されます。 Q2: ゲストより先に(qemuメモリ空間内の)ゲストメモリ領域にqemuがアクセスした場合どうなる? A2: qemuのページフォールトが起きますが、SPTEは割当てられません。そのため、ゲストが当該ページにアクセスすると再度ページフォールトが起きます。SPTEが設定されるのはこのときです。 調査対象バージョン x86_64 (Intel EPTあり) シャドウページテーブルはさすがに今さらなので(^^; linux-2.6.37.6 2.6.38はasynchronous page faultを実装していて読み