Hi, This is v10 of the server side changes to enable vfio-user in QEMU.
Thank you for reviewing and sharing your feedback for the previous revision. We have addressed your comments in this revision. We have dropped the following patches in this series: - tests/avocado: Specify target VM argument to helper routines - configure: require cmake 3.19 or newer - vfio-user: avocado tests for vfio-user We have also made the following changes: [PATCH v10 1/14] qdev: unplug blocker for devices - updated functions comments for unplug blockers in hw/qdev-core.h [PATCH v10 4/14] vfio-user: build library - uses meson build system to build libvfio-user library - dropped ubuntu CI build [PATCH v10 5/14] vfio-user: define vfio-user-server object - updated comments for VfioUserServerProperties in qapi/qom.json [PATCH v10 6/14] vfio-user: instantiate vfio-user context - added comments to vfu_object_init_ctx() explaining function contract [PATCH v10 8/14] vfio-user: run vfio-user context - vfu_object_ctx_run() asserts that VfuObject->device is not NULL - added a comment to vfu_object_ctx_run() explaining why VfuObject->device wouldn't be NULL Thank you very much! Jagannathan Raman (14): qdev: unplug blocker for devices remote/machine: add HotplugHandler for remote machine remote/machine: add vfio-user property vfio-user: build library vfio-user: define vfio-user-server object vfio-user: instantiate vfio-user context vfio-user: find and init PCI device vfio-user: run vfio-user context vfio-user: handle PCI config space accesses vfio-user: IOMMU support for remote device vfio-user: handle DMA mappings vfio-user: handle PCI BAR accesses vfio-user: handle device interrupts vfio-user: handle reset of remote device configure | 17 + meson.build | 23 +- qapi/misc.json | 31 + qapi/qom.json | 20 +- include/exec/memory.h | 3 + include/hw/pci/pci.h | 13 + include/hw/qdev-core.h | 29 + include/hw/remote/iommu.h | 40 ++ include/hw/remote/machine.h | 4 + include/hw/remote/vfio-user-obj.h | 6 + hw/core/qdev.c | 24 + hw/pci/msi.c | 16 +- hw/pci/msix.c | 10 +- hw/pci/pci.c | 13 + hw/remote/iommu.c | 131 ++++ hw/remote/machine.c | 88 ++- hw/remote/vfio-user-obj.c | 914 ++++++++++++++++++++++++ softmmu/physmem.c | 4 +- softmmu/qdev-monitor.c | 4 + stubs/vfio-user-obj.c | 6 + tests/qtest/fuzz/generic_fuzz.c | 9 +- .gitlab-ci.d/buildtest.yml | 1 + .gitmodules | 3 + Kconfig.host | 4 + MAINTAINERS | 5 + hw/remote/Kconfig | 4 + hw/remote/meson.build | 4 + hw/remote/trace-events | 11 + meson_options.txt | 2 + stubs/meson.build | 1 + subprojects/libvfio-user | 1 + tests/docker/dockerfiles/centos8.docker | 2 + 32 files changed, 1424 insertions(+), 19 deletions(-) create mode 100644 include/hw/remote/iommu.h create mode 100644 include/hw/remote/vfio-user-obj.h create mode 100644 hw/remote/iommu.c create mode 100644 hw/remote/vfio-user-obj.c create mode 100644 stubs/vfio-user-obj.c create mode 160000 subprojects/libvfio-user -- 2.20.1