linux-stable/virt/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
..
assigned-dev.c KVM: Fix off-by-one in overflow check of KVM_ASSIGN_SET_MSIX_NR 2011-07-12 13:16:18 +03:00
async_pf.c KVM: fix the race while wakeup all pv guest 2011-01-12 11:29:03 +02:00
async_pf.h KVM: Halt vcpu if page it tries to access is swapped out 2011-01-12 11:21:39 +02:00
coalesced_mmio.c KVM: Update Red Hat copyrights 2010-08-01 10:35:51 +03:00
coalesced_mmio.h KVM: Simplify coalesced mmio initialization 2010-03-01 12:35:41 -03:00
eventfd.c Merge branch 'kvm-updates/2.6.39' of git://git.kernel.org/pub/scm/virt/kvm/kvm 2011-04-07 11:33:04 -07:00
ioapic.c KVM: ioapic: Fix an error field reference 2011-05-22 08:39:27 -04:00
ioapic.h KVM: convert ioapic lock to spinlock 2010-05-13 01:23:55 -03:00
iodev.h KVM: remove in_range from io devices 2009-09-10 08:33:05 +03:00
iommu.c KVM: Use u64 for frame data types 2010-08-02 06:39:44 +03:00
irq_comm.c KVM: fast-path msi injection with irqfd 2011-01-12 11:29:38 +02:00
Kconfig KVM: Halt vcpu if page it tries to access is swapped out 2011-01-12 11:21:39 +02:00
kvm_main.c KVM: MMU: mmio page fault support 2011-07-24 11:50:40 +03:00