[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[RFC PATCH v7bis 00/19] Emulated Xen PV backend and PIRQ support
From: |
David Woodhouse |
Subject: |
[RFC PATCH v7bis 00/19] Emulated Xen PV backend and PIRQ support |
Date: |
Mon, 16 Jan 2023 22:19:00 +0000 |
This is what's in flux on top of the series posted as v7.
It contains both the PV back end support and the PIRQ support which were
previous posted in separate series. The former is mostly unchanged, and
we still need to either port that C++ XenStore implementation or make
Xen's own xenstored stop crashing when run without a real Xen. Although
the basic ops table support is probably sane enough to go in; it just
wants testing on real Xen.
As noted, it would have been nice to remove the old Xen headers in the
first phase of patches with the initial platform support, but it really
does need the header untangling which occurs as we go through the
backend and introduce the generic ops support.
The PIRQ support is significantly reworked and I think I've fixed up
the locking issues, and tested with both emulated and VFIO passthrough
devices for MSI and MSI-X to PIRQ mappings.
I do need to disable the KVM irqfd routing if there are VFIO devices and
the kernel is old enough not to support native evtchn delivery. I have
plans around that¹ but was hoping to avoid them becoming a dependency of
any of the Xen suppport, so I'll probably just make it refuse that
configuration on older kernels.
¹
aaef9961d210ac1873153bf3cf01d984708744fc.camel@infradead.org/">https://lore.kernel.org/qemu-devel/aaef9961d210ac1873153bf3cf01d984708744fc.camel@infradead.org/
David Woodhouse (18):
hw/xen: Add evtchn operations to allow redirection to internal emulation
hw/xen: Add emulated evtchn ops
hw/xen: Add gnttab operations to allow redirection to internal emulation
hw/xen: Pass grant ref to gnttab unmap
hw/xen: Add foreignmem operations to allow redirection to internal
emulation
hw/xen: Move xenstore_store_pv_console_info to xen_console.c
hw/xen: Use XEN_PAGE_SIZE in PV backend drivers
hw/xen: Rename xen_common.h to xen_native.h
hw/xen: Build PV backend drivers for XENFV_MACHINE
hw/xen: Map guest XENSTORE_PFN grant in emulated Xenstore
hw/xen: Add backend implementation of grant table operations
hw/xen: Implement soft reset for emulated gnttab
hw/xen: Remove old version of Xen headers
i386/xen: Initialize XenBus and legacy backends from pc_init1()
i386/xen: Implement HYPERVISOR_physdev_op
hw/xen: Implement emulated PIRQ hypercall support
hw/xen: Support GSI mapping to PIRQ
hw/xen: Support MSI mapping to PIRQ
Paul Durrant (1):
hw/xen: Add xenstore operations to allow redirection to internal emulation
accel/xen/xen-all.c | 69 +-
hw/9pfs/meson.build | 2 +-
hw/9pfs/xen-9p-backend.c | 32 +-
hw/9pfs/xen-9pfs.h | 4 +-
hw/block/dataplane/meson.build | 2 +-
hw/block/dataplane/xen-block.c | 12 +-
hw/block/meson.build | 2 +-
hw/block/xen-block.c | 1 -
hw/block/xen_blkif.h | 5 +-
hw/char/meson.build | 2 +-
hw/char/xen_console.c | 59 +-
hw/display/meson.build | 2 +-
hw/display/xenfb.c | 38 +-
hw/i386/kvm/trace-events | 5 +
hw/i386/kvm/trace.h | 1 +
hw/i386/kvm/xen-stubs.c | 15 +
hw/i386/kvm/xen_evtchn.c | 596 ++++++++++++++-
hw/i386/kvm/xen_evtchn.h | 23 +
hw/i386/kvm/xen_gnttab.c | 320 +++++++-
hw/i386/kvm/xen_gnttab.h | 1 +
hw/i386/kvm/xen_xenstore.c | 13 +-
hw/i386/pc_piix.c | 17 +
hw/i386/x86.c | 16 +
hw/i386/xen/xen-hvm.c | 45 +-
hw/i386/xen/xen-mapcache.c | 2 +-
hw/i386/xen/xen_platform.c | 7 +-
hw/net/xen_nic.c | 27 +-
hw/pci/msi.c | 11 +
hw/pci/msix.c | 7 +
hw/pci/pci.c | 17 +
hw/usb/meson.build | 2 +-
hw/usb/xen-usb.c | 31 +-
hw/xen/meson.build | 6 +-
hw/xen/trace-events | 2 +-
hw/xen/xen-bus-helper.c | 61 +-
hw/xen/xen-bus.c | 394 ++--------
hw/xen/xen-legacy-backend.c | 256 ++-----
hw/xen/xen-operations.c | 487 ++++++++++++
hw/xen/xen_devconfig.c | 4 +-
hw/xen/xen_pt.c | 2 +-
hw/xen/xen_pt.h | 2 +-
hw/xen/xen_pt_config_init.c | 2 +-
hw/xen/xen_pt_graphics.c | 1 -
hw/xen/xen_pt_msi.c | 4 +-
hw/xen/xen_pvdev.c | 63 +-
include/hw/pci/msi.h | 1 +
include/hw/xen/interface/grant_table.h | 36 -
include/hw/xen/interface/io/blkif.h | 712 -----------------
include/hw/xen/interface/io/console.h | 46 --
include/hw/xen/interface/io/fbif.h | 156 ----
include/hw/xen/interface/io/kbdif.h | 566 --------------
include/hw/xen/interface/io/netif.h | 1010 -------------------------
include/hw/xen/interface/io/protocols.h | 42 -
include/hw/xen/interface/io/ring.h | 474 ------------
include/hw/xen/interface/io/usbif.h | 254 -------
include/hw/xen/interface/io/xenbus.h | 70 --
include/hw/xen/xen-bus-helper.h | 25 +-
include/hw/xen/xen-bus.h | 21 +-
include/hw/xen/xen-legacy-backend.h | 24 +-
include/hw/xen/xen.h | 24 +-
include/hw/xen/xen_backend_ops.h | 393 ++++++++++
include/hw/xen/{xen_common.h => xen_native.h} | 75 +-
include/hw/xen/xen_pvdev.h | 6 +-
meson.build | 1 +
softmmu/globals.c | 4 +
target/i386/kvm/kvm.c | 12 +-
target/i386/kvm/kvm_i386.h | 2 +
target/i386/kvm/xen-compat.h | 19 +
target/i386/kvm/xen-emu.c | 141 +++-
69 files changed, 2491 insertions(+), 4293 deletions(-)
- [PATCH v7 20/51] i386/xen: handle VCPUOP_register_vcpu_info, (continued)
- [PATCH v7 20/51] i386/xen: handle VCPUOP_register_vcpu_info, David Woodhouse, 2023/01/16
- [PATCH v7 43/51] hw/xen: Support mapping grant frames, David Woodhouse, 2023/01/16
- [PATCH v7 45/51] hw/xen: Implement GNTTABOP_query_size, David Woodhouse, 2023/01/16
- [PATCH v7 50/51] hw/xen: Add xen_xenstore device for xenstore emulation, David Woodhouse, 2023/01/16
- [PATCH v7 15/51] i386/xen: manage and save/restore Xen guest long_mode setting, David Woodhouse, 2023/01/16
- [PATCH v7 51/51] hw/xen: Add basic ring handling to xenstore, David Woodhouse, 2023/01/16
- [PATCH v7 01/51] include: import Xen public headers to include/standard-headers/, David Woodhouse, 2023/01/16
- [PATCH v7 33/51] hw/xen: Implement EVTCHNOP_send, David Woodhouse, 2023/01/16
- [PATCH v7 49/51] hw/xen: Add backend implementation of interdomain event channel support, David Woodhouse, 2023/01/16
- [PATCH v7 22/51] i386/xen: handle VCPUOP_register_runstate_memory_area, David Woodhouse, 2023/01/16
- [RFC PATCH v7bis 00/19] Emulated Xen PV backend and PIRQ support,
David Woodhouse <=
- [RFC PATCH v7bis 13/19] hw/xen: Implement soft reset for emulated gnttab, David Woodhouse, 2023/01/16
- [RFC PATCH v7bis 11/19] hw/xen: Map guest XENSTORE_PFN grant in emulated Xenstore, David Woodhouse, 2023/01/16
- [RFC PATCH v7bis 16/19] i386/xen: Implement HYPERVISOR_physdev_op, David Woodhouse, 2023/01/16
- [RFC PATCH v7bis 03/19] hw/xen: Add gnttab operations to allow redirection to internal emulation, David Woodhouse, 2023/01/16
- [RFC PATCH v7bis 05/19] hw/xen: Add foreignmem operations to allow redirection to internal emulation, David Woodhouse, 2023/01/16
- [RFC PATCH v7bis 17/19] hw/xen: Implement emulated PIRQ hypercall support, David Woodhouse, 2023/01/16
- [RFC PATCH v7bis 08/19] hw/xen: Use XEN_PAGE_SIZE in PV backend drivers, David Woodhouse, 2023/01/16
- [RFC PATCH v7bis 07/19] hw/xen: Move xenstore_store_pv_console_info to xen_console.c, David Woodhouse, 2023/01/16
- [RFC PATCH v7bis 06/19] hw/xen: Add xenstore operations to allow redirection to internal emulation, David Woodhouse, 2023/01/16
- [RFC PATCH v7bis 15/19] i386/xen: Initialize XenBus and legacy backends from pc_init1(), David Woodhouse, 2023/01/16