Based-on: <cover.1636057885.git.john.g.john...@oracle.com> Hi,
Thank you very much for reviewing the patches in the previous revision! We have addressed your comments. We added the support for MSI/x and IOMMU in this series. Please share your feedback for the latest series - appreciate your time. Please the list below for changes since last revision: [PATCH v4 02/14] tests/avocado: Specify target VM argument to helper routines - New in this series [PATCH v4 03/14] vfio-user: build library - Added VFIO_USER_SERVER Kconfig option and vfio_user_server option to the configure script. VFIO_USER_SERVER depends on MULTIPROCESS - Reverted to enabling multiprocess by default. As such, tagging distros in the multiprocess acceptance test for multiprocess is not necessary - reverted them. [PATCH v4 04/14] vfio-user: define vfio-user-server object - Using qapi_free_SocketAddress to free SocketAddress - Changed object name to x-vfio-user-server - Removed max_devs class variable. This is not needed anymore as we added IOMMU support in this series [PATCH v4 05/14] vfio-user: instantiate vfio-user context - Redesigned init code to abort QEMU during startup upon error, whereas synchronously report the error and continue running QEMU during hotplug - Added qemu_remove_machine_init_done_notifier() in object finalize - Removed NULL initialization of o->vfu_ctx [PATCH v4 07/14] vfio-user: run vfio-user context - Addressed comment about hot plug from this patch, in patch 4 - poll for fd to become readable instead of busy spinning alone [PATCH v4 11/14] vfio-user: IOMMU support for remote device - New in this series [PATCH v4 12/14] handle device interrupts - Added support for MSI/MSI-x interrupts - refactored INTx handling code to leverage the hash table used by the MSI code - Added a hash table to lookup vfio-user context by PCI device function index [PATCH v4 13/14] vfio-user: register handlers to facilitate migration - Compute the size of the migration data when registering for migration BAR. This alleviates the need to hard code a sufficiently large value for the migration BAR. [PATCH v4 14/14] vfio-user: avocado tests for vfio-user - Corrected the object’s name in the test - Added tests for hotplug and migration cases Thank you very much! Jagannathan Raman (14): configure, meson: override C compiler for cmake tests/avocado: Specify target VM argument to helper routines 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: handle DMA mappings vfio-user: handle PCI BAR accesses vfio-user: IOMMU support for remote device vfio-user: handle device interrupts vfio-user: register handlers to facilitate migration vfio-user: avocado tests for vfio-user configure | 21 +- meson.build | 44 +- qapi/qom.json | 20 +- include/hw/pci/pci.h | 8 + include/hw/remote/iohub.h | 1 + include/hw/remote/iommu.h | 24 + include/migration/vmstate.h | 2 + migration/savevm.h | 2 + hw/pci/msi.c | 13 +- hw/pci/msix.c | 12 +- hw/pci/pci.c | 2 +- hw/remote/iohub.c | 7 + hw/remote/iommu.c | 117 +++ hw/remote/machine.c | 5 + hw/remote/vfio-user-obj.c | 957 +++++++++++++++++++++ migration/savevm.c | 73 ++ migration/vmstate.c | 19 + .gitlab-ci.d/buildtest.yml | 2 + .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 + subprojects/libvfio-user | 1 + tests/avocado/avocado_qemu/__init__.py | 10 +- tests/avocado/vfio-user.py | 225 +++++ tests/docker/dockerfiles/centos8.docker | 2 + tests/docker/dockerfiles/ubuntu2004.docker | 2 + 30 files changed, 1591 insertions(+), 11 deletions(-) create mode 100644 include/hw/remote/iommu.h create mode 100644 hw/remote/iommu.c create mode 100644 hw/remote/vfio-user-obj.c create mode 160000 subprojects/libvfio-user create mode 100644 tests/avocado/vfio-user.py -- 2.20.1