linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/10] KVM/X86: Handle guest memory that does not have a struct page
@ 2018-02-21 17:47 KarimAllah Ahmed
  2018-02-21 17:47 ` [PATCH 01/10] X86/nVMX: handle_vmon: Read 4 bytes from guest memory instead of map->read->unmap sequence KarimAllah Ahmed
                   ` (11 more replies)
  0 siblings, 12 replies; 30+ messages in thread
From: KarimAllah Ahmed @ 2018-02-21 17:47 UTC (permalink / raw)
  To: x86, linux-kernel, kvm
  Cc: hpa, jmattson, mingo, pbonzini, rkrcmar, tglx, KarimAllah Ahmed

For the most part, KVM can handle guest memory that does not have a struct
page (i.e. not directly managed by the kernel). However, There are a few places
in the code, specially in the nested code, that does not support that.

Patch 1, 2, and 3 avoid the mapping and unmapping all together and just
directly use kvm_guest_read and kvm_guest_write.

Patch 4 introduces a new guest mapping interface that encapsulate all the
bioler plate code that is needed to map and unmap guest memory. It also
supports guest memory without "struct page".

Patch 5, 6, 7, 8, 9, and 10 switch most of the offending code in VMX and hyperv
to use the new guest mapping API.

This patch series is the first set of fixes. Handling SVM and APIC-access page
will be handled in a different patch series.

KarimAllah Ahmed (10):
  X86/nVMX: handle_vmon: Read 4 bytes from guest memory instead of
    map->read->unmap sequence
  X86/nVMX: handle_vmptrld: Copy the VMCS12 directly from guest memory
    instead of map->copy->unmap sequence.
  X86/nVMX: Update the PML table without mapping and unmapping the page
  KVM: Introduce a new guest mapping API
  KVM/nVMX: Use kvm_vcpu_map when mapping the L1 MSR bitmap
  KVM/nVMX: Use kvm_vcpu_map when mapping the virtual APIC page
  KVM/nVMX: Use kvm_vcpu_map when mapping the posted interrupt
    descriptor table
  KVM/X86: Use kvm_vcpu_map in emulator_cmpxchg_emulated
  KVM/X86: hyperv: Use kvm_vcpu_map in synic_clear_sint_msg_pending
  KVM/X86: hyperv: Use kvm_vcpu_map in synic_deliver_msg

 arch/x86/kvm/hyperv.c    |  28 ++++-----
 arch/x86/kvm/vmx.c       | 144 +++++++++++++++--------------------------------
 arch/x86/kvm/x86.c       |  13 ++---
 include/linux/kvm_host.h |  15 +++++
 virt/kvm/kvm_main.c      |  50 ++++++++++++++++
 5 files changed, 129 insertions(+), 121 deletions(-)

-- 
2.7.4

^ permalink raw reply	[flat|nested] 30+ messages in thread

end of thread, other threads:[~2018-04-12 21:26 UTC | newest]

Thread overview: 30+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-02-21 17:47 [PATCH 00/10] KVM/X86: Handle guest memory that does not have a struct page KarimAllah Ahmed
2018-02-21 17:47 ` [PATCH 01/10] X86/nVMX: handle_vmon: Read 4 bytes from guest memory instead of map->read->unmap sequence KarimAllah Ahmed
2018-02-21 17:47 ` [PATCH 02/10] X86/nVMX: handle_vmptrld: Copy the VMCS12 directly from guest memory instead of map->copy->unmap sequence KarimAllah Ahmed
2018-02-21 17:47 ` [PATCH 03/10] X86/nVMX: Update the PML table without mapping and unmapping the page KarimAllah Ahmed
2018-02-23  2:02   ` kbuild test robot
2018-04-12 15:03   ` Paolo Bonzini
2018-02-21 17:47 ` [PATCH 04/10] KVM: Introduce a new guest mapping API KarimAllah Ahmed
2018-02-23  1:27   ` kbuild test robot
2018-02-23  1:37   ` kbuild test robot
2018-02-23 23:48     ` Raslan, KarimAllah
2018-04-12 14:33   ` Paolo Bonzini
2018-02-21 17:47 ` [PATCH 05/10] KVM/nVMX: Use kvm_vcpu_map when mapping the L1 MSR bitmap KarimAllah Ahmed
2018-02-23 21:36   ` Konrad Rzeszutek Wilk
2018-02-23 23:45     ` Raslan, KarimAllah
2018-04-12 14:36   ` Paolo Bonzini
2018-02-21 17:47 ` [PATCH 06/10] KVM/nVMX: Use kvm_vcpu_map when mapping the virtual APIC page KarimAllah Ahmed
2018-04-12 14:38   ` Paolo Bonzini
2018-04-12 17:57     ` Sean Christopherson
2018-04-12 20:23       ` Paolo Bonzini
2018-02-21 17:47 ` [PATCH 07/10] KVM/nVMX: Use kvm_vcpu_map when mapping the posted interrupt descriptor table KarimAllah Ahmed
2018-04-12 14:39   ` Paolo Bonzini
2018-02-21 17:47 ` [PATCH 08/10] KVM/X86: Use kvm_vcpu_map in emulator_cmpxchg_emulated KarimAllah Ahmed
2018-02-22  2:56   ` Raslan, KarimAllah
2018-02-21 17:47 ` [PATCH 09/10] KVM/X86: hyperv: Use kvm_vcpu_map in synic_clear_sint_msg_pending KarimAllah Ahmed
2018-02-21 17:47 ` [PATCH 10/10] KVM/X86: hyperv: Use kvm_vcpu_map in synic_deliver_msg KarimAllah Ahmed
2018-03-01 15:24 ` [PATCH 00/10] KVM/X86: Handle guest memory that does not have a struct page Raslan, KarimAllah
2018-03-01 17:51   ` Jim Mattson
2018-03-02 17:40     ` Paolo Bonzini
2018-04-12 14:59 ` Paolo Bonzini
2018-04-12 21:25   ` Raslan, KarimAllah

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).