[PATCH v11 00/14] vfio-user server in QEMU

Jagannathan Raman posted 14 patches 1 year, 11 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/cover.1654889541.git.jag.raman@oracle.com
Maintainers: "Alex Bennée" <alex.bennee@linaro.org>, "Philippe Mathieu-Daudé" <f4bug@amsat.org>, Thomas Huth <thuth@redhat.com>, Wainer dos Santos Moschetta <wainersm@redhat.com>, Beraldo Leal <bleal@redhat.com>, Paolo Bonzini <pbonzini@redhat.com>, "Daniel P. Berrangé" <berrange@redhat.com>, Eduardo Habkost <eduardo@habkost.net>, "Michael S. Tsirkin" <mst@redhat.com>, Marcel Apfelbaum <marcel.apfelbaum@gmail.com>, Elena Ufimtseva <elena.ufimtseva@oracle.com>, Jagannathan Raman <jag.raman@oracle.com>, John G Johnson <john.g.johnson@oracle.com>, Peter Xu <peterx@redhat.com>, David Hildenbrand <david@redhat.com>, Eric Blake <eblake@redhat.com>, Markus Armbruster <armbru@redhat.com>, Alexander Bulekov <alxndr@bu.edu>, Bandan Das <bsd@redhat.com>, Stefan Hajnoczi <stefanha@redhat.com>, Darren Kenny <darren.kenny@oracle.com>, Qiuhao Li <Qiuhao.Li@outlook.com>, Laurent Vivier <lvivier@redhat.com>
There is a newer version of this series
configure                               |  17 +
meson.build                             |  23 +-
qapi/misc.json                          |  31 +
qapi/qom.json                           |  20 +-
include/exec/memory.h                   |   3 +
include/hw/pci/msi.h                    |   1 +
include/hw/pci/msix.h                   |   1 +
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                            |  48 +-
hw/pci/msix.c                           |  35 +-
hw/pci/pci.c                            |  13 +
hw/remote/iommu.c                       | 131 ++++
hw/remote/machine.c                     |  88 ++-
hw/remote/vfio-user-obj.c               | 958 ++++++++++++++++++++++++
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 +
34 files changed, 1527 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
[PATCH v11 00/14] vfio-user server in QEMU
Posted by Jagannathan Raman 1 year, 11 months ago
Hi,

This is v11 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 made the following changes in this series:
[PATCH v11 13/14] vfio-user: handle device interrupts
  - Added msi_set_irq_state() and msix_set_irq_state() to mask
    and unmask individual MSI(x) vectors
  - Implement callbacks to handle the MASK/UNMASK actions
    initiated by SET_IRQS message
  - vfu_object_set_bus_irq() sets the maximum number of IRQS
    to max BDF. This only affects devices using INTx - allows
    multiple devices to use INTx

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/msi.h                    |   1 +
 include/hw/pci/msix.h                   |   1 +
 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                            |  48 +-
 hw/pci/msix.c                           |  35 +-
 hw/pci/pci.c                            |  13 +
 hw/remote/iommu.c                       | 131 ++++
 hw/remote/machine.c                     |  88 ++-
 hw/remote/vfio-user-obj.c               | 958 ++++++++++++++++++++++++
 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 +
 34 files changed, 1527 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