One of the reasons MMIO is slower than port IO is
because it requires a page table lookup.
For normal memory accesses, this is solved by using the TLB
cache - but MMIO entries are either not present or reserved
and so are never cached.

To fix, allow installing an ioeventfd on top of a read only
memory region, which allows the CPU to cache the translations.

Warning: svm patch is untested.

Michael S. Tsirkin (3):
  vmx: allow ioeventfd for EPT violations
  svm: allow ioeventfd for NPT page faults
  kvm: add KVM_CAP_IOEVENTFD_PF capability

 include/uapi/linux/kvm.h          | 1 +
 arch/x86/kvm/svm.c                | 5 +++++
 arch/x86/kvm/vmx.c                | 5 +++++
 arch/x86/kvm/x86.c                | 1 +
 Documentation/virtual/kvm/api.txt | 7 +++++++
 5 files changed, 19 insertions(+)

-- 
MST

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to