mbox series

[v8,00/17] vfio-user server in QEMU

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

Message

Jag Raman April 19, 2022, 8:44 p.m. UTC
Hi,

This is v8 of the server side changes to enable vfio-user in QEMU.

Thank you very much for reviewing the last revision of this series!

We've made the following changes in this revision:

[PATCH v8 06/17] vfio-user: build library
  - updated libvfio-user to the latest

[PATCH v8 07/17] vfio-user: define vfio-user-server object
  - changed auto_shutdown to a per-instance property than
    a per-class property

[PATCH v8 12/17] vfio-user: IOMMU support for remote device
  - lock mutex while looking up hash table
  - removed global hash table - added RemoteIommu object to
    house this variable
  - added unplug handler to remove per-device IOMMU entry
    when a PCIDevice is unplugged

[PATCH v8 14/17] vfio-user: handle PCI BAR accesses
  - refactored vfu_object_bar_rw()
  - vfu_object_bar_rw() handles short sections returned by
    memory_region_find()

[PATCH v8 15/17] vfio-user: handle device interrupts
  - removed callbacks for msi_notify() and msix_notify()
  - added callbacks for msi_send_message() and
    msi(x)_get_message() operations

Thank you!

Jagannathan Raman (17):
  tests/avocado: Specify target VM argument to helper routines
  qdev: unplug blocker for devices
  remote/machine: add HotplugHandler for remote machine
  remote/machine: add vfio-user property
  configure: require cmake 3.19 or newer
  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
  vfio-user: avocado tests for vfio-user

 configure                                  |  36 +-
 meson.build                                |  44 +-
 qapi/misc.json                             |  23 +
 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                          | 114 +++
 hw/remote/machine.c                        |  88 +-
 hw/remote/vfio-user-obj.c                  | 891 +++++++++++++++++++++
 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                 |   2 +
 .gitmodules                                |   3 +
 Kconfig.host                               |   4 +
 MAINTAINERS                                |   6 +
 hw/remote/Kconfig                          |   4 +
 hw/remote/meson.build                      |   4 +
 hw/remote/trace-events                     |  11 +
 meson_options.txt                          |   3 +
 stubs/meson.build                          |   1 +
 subprojects/libvfio-user                   |   1 +
 tests/avocado/avocado_qemu/__init__.py     |  14 +-
 tests/avocado/vfio-user.py                 | 164 ++++
 tests/docker/dockerfiles/centos8.docker    |   2 +
 tests/docker/dockerfiles/ubuntu2004.docker |   2 +
 35 files changed, 1594 insertions(+), 24 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
 create mode 100644 tests/avocado/vfio-user.py

Comments

Stefan Hajnoczi April 25, 2022, 10:32 a.m. UTC | #1
On Tue, Apr 19, 2022 at 04:44:05PM -0400, Jagannathan Raman wrote:
> This is v8 of the server side changes to enable vfio-user in QEMU.
> 
> Thank you very much for reviewing the last revision of this series!

I posted some minor comments. I hope the next revision or the one after
it will be merged because the code will benefit from being in-tree where
more people can easily try it out.

Stefan
Jag Raman April 25, 2022, 5:40 p.m. UTC | #2
> On Apr 25, 2022, at 6:32 AM, Stefan Hajnoczi <stefanha@redhat.com> wrote:
> 
> On Tue, Apr 19, 2022 at 04:44:05PM -0400, Jagannathan Raman wrote:
>> This is v8 of the server side changes to enable vfio-user in QEMU.
>> 
>> Thank you very much for reviewing the last revision of this series!
> 
> I posted some minor comments. I hope the next revision or the one after
> it will be merged because the code will benefit from being in-tree where
> more people can easily try it out.

Thank you very much!

Will send the next revision out shortly!

--
Jag

> 
> Stefan