linux/arch/x86/kvm
Xiao Guangrong ce88decffd KVM: MMU: mmio page fault support
The idea is from Avi:

| We could cache the result of a miss in an spte by using a reserved bit, and
| checking the page fault error code (or seeing if we get an ept violation or
| ept misconfiguration), so if we get repeated mmio on a page, we don't need to
| search the slot list/tree.
| (https://lkml.org/lkml/2011/2/22/221)

When the page fault is caused by mmio, we cache the info in the shadow page
table, and also set the reserved bits in the shadow page table, so if the mmio
is caused again, we can quickly identify it and emulate it directly

Searching mmio gfn in memslots is heavy since we need to walk all memeslots, it
can be reduced by this feature, and also avoid walking guest page table for
soft mmu.

[jan: fix operator precedence issue]

Signed-off-by: Xiao Guangrong <xiaoguangrong@cn.fujitsu.com>
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
2011-07-24 11:50:40 +03:00
..
Kconfig KVM: Steal time implementation 2011-07-14 12:59:14 +03:00
Makefile KVM: x86: Makefile clean up 2011-01-12 11:29:08 +02:00
emulate.c KVM: x86 emulator: fold decode_cache into x86_emulate_ctxt 2011-07-12 13:16:09 +03:00
i8254.c KVM: fix typo in copyright notice 2010-10-24 10:53:14 +02:00
i8254.h KVM: remove useless function declaration kvm_inject_pit_timer_irqs() 2011-05-11 07:57:09 -04:00
i8259.c KVM: remove isr_ack logic from PIC 2011-03-17 13:08:30 -03:00
irq.c KVM: fix typo in copyright notice 2010-10-24 10:53:14 +02:00
irq.h KVM: remove useless function declarations from file arch/x86/kvm/irq.h 2011-05-11 07:57:09 -04:00
kvm_cache_regs.h KVM: Fetch guest cr3 from hardware on demand 2011-01-12 11:31:16 +02:00
kvm_timer.h KVM: arch/x86/kvm/kvm_timer.h checkpatch cleanup 2010-05-17 12:14:42 +03:00
lapic.c KVM: x86: Remove useless regs_page pointer from kvm_lapic 2011-03-17 13:08:33 -03:00
lapic.h KVM: x86: Remove useless regs_page pointer from kvm_lapic 2011-03-17 13:08:33 -03:00
mmu.c KVM: MMU: mmio page fault support 2011-07-24 11:50:40 +03:00
mmu.h KVM: MMU: mmio page fault support 2011-07-24 11:50:40 +03:00
mmu_audit.c KVM: MMU: remove bypass_guest_pf 2011-07-24 11:50:33 +03:00
mmutrace.h KVM: MMU: support disable/enable mmu audit dynamicly 2010-10-24 10:51:56 +02:00
paging_tmpl.h KVM: MMU: mmio page fault support 2011-07-24 11:50:40 +03:00
svm.c KVM: nVMX: Allow setting the VMXE bit in CR4 2011-07-12 11:45:10 +03:00
timer.c x86: Fix common misspellings 2011-03-18 10:39:30 +01:00
trace.h KVM: x86 emulator: fold decode_cache into x86_emulate_ctxt 2011-07-12 13:16:09 +03:00
tss.h
vmx.c KVM: MMU: mmio page fault support 2011-07-24 11:50:40 +03:00
x86.c KVM: MMU: mmio page fault support 2011-07-24 11:50:40 +03:00
x86.h KVM: MMU: cache mmio info on page fault path 2011-07-24 11:50:26 +03:00