mbox series

[v4,00/14] vfio-user server in QEMU

Message ID cover.1639549843.git.jag.raman@oracle.com (mailing list archive)
Headers show
Series vfio-user server in QEMU | expand

Message

Jag Raman Dec. 15, 2021, 3:35 p.m. UTC
Based-on: <cover.1636057885.git.john.g.johnson@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