[PATCH v2 0/6] KVM: x86/xen: Add in-kernel Xen event channel delivery

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Implement 2-level event channel delivery based on the original code from
Joao and Ankur. For IPIs and timers we *really* want to have a completely
in-kernel code path instead of bouncing out to the VMM each time. That
will come next, but this is the basis for it. With this I can wire up
MSI of assigned devices to PIRQs in the guest.

v2: Actually solve the problem of mapping the shared_info page, instead
    of merely declaring that I've reduced it to a previously unsolved
    problem. And having fixed up the broken KVM steal time stuff in a
    separately posted patch.

David Woodhouse (6):
      KVM: x86/xen: Fix get_attr of KVM_XEN_ATTR_TYPE_SHARED_INFO
      KVM: selftests: Add event channel upcall support to xen_shinfo_test
      KVM: x86/xen: Use sizeof_field() instead of open-coding it
      KVM: Fix kvm_map_gfn()/kvm_unmap_gfn() to take a kvm as their names imply
      KVM: x86/xen: Maintain valid mapping of Xen shared_info page
      KVM: x86/xen: Add KVM_IRQ_ROUTING_XEN_EVTCHN and event channel delivery

 Documentation/virt/kvm/api.rst                       |  21 +++
 arch/x86/include/asm/kvm_host.h                      |   5 +
 arch/x86/kvm/irq_comm.c                              |  12 ++
 arch/x86/kvm/mmu/mmu.c                               |  23 ++++
 arch/x86/kvm/x86.c                                   |   3 +-
 arch/x86/kvm/xen.c                                   | 340 ++++++++++++++++++++++++++++++++++++++++++++----
 arch/x86/kvm/xen.h                                   |   9 ++
 include/linux/kvm_host.h                             |  37 ++----
 include/linux/kvm_types.h                            |  27 ++++
 include/uapi/linux/kvm.h                             |  11 ++
 tools/testing/selftests/kvm/x86_64/xen_shinfo_test.c | 187 ++++++++++++++++++++++++--
 virt/kvm/kvm_main.c                                  |  11 +-
 12 files changed, 614 insertions(+), 72 deletions(-)






[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux