On Mon, Mar 15, 2010 at 09:36:52AM +0200, Avi Kivity wrote:
On 03/03/2010 09:12 PM, Joerg Roedel wrote:This is needed because we could have a nested page fault or an ordinary
This patch implements logic to make sure that either a
page-fault/page-fault-vmexit or a nested-page-fault-vmexit
is propagated back to the guest.
Signed-off-by: Joerg Roedel<joerg.roedel@xxxxxxx>
---
arch/x86/kvm/mmu.h | 1 +
arch/x86/kvm/paging_tmpl.h | 2 ++
arch/x86/kvm/x86.c | 15 ++++++++++++++-
3 files changed, 17 insertions(+), 1 deletions(-)
diff --git a/arch/x86/kvm/mmu.h b/arch/x86/kvm/mmu.h
index 64f619b..b42b27e 100644
--- a/arch/x86/kvm/mmu.h
+++ b/arch/x86/kvm/mmu.h
@@ -47,6 +47,7 @@
#define PFERR_USER_MASK (1U<< 2)
#define PFERR_RSVD_MASK (1U<< 3)
#define PFERR_FETCH_MASK (1U<< 4)
+#define PFERR_NESTED_MASK (1U<< 31)
Why is this needed? Queue an ordinary page fault page; the injection
code should check the page fault intercept and #VMEXIT if needed.
page fault which need to be propagated.