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

Jagannathan Raman posted 14 patches 1 year, 10 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/cover.1655151679.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>
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                            |  49 +-
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, 1528 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 v12 00/14] vfio-user server in QEMU
Posted by Jagannathan Raman 1 year, 10 months ago
This is v12 of the server side changes to enable vfio-user in QEMU.

Thanks so much for reviewing this series and sharing your feedback.

We made the following changes in this series:
[PATCH v12 13/14] vfio-user: handle device interrupts
 - Renamed msi_set_irq_state() and msix_set_irq_state() as
   msi_set_mask() and msix_set_mask() respectively
 - Added missing return statement for error case in msi_set_mask()

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                            |  49 +-
 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, 1528 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
Re: [PATCH v12 00/14] vfio-user server in QEMU
Posted by Stefan Hajnoczi 1 year, 10 months ago
On Mon, Jun 13, 2022 at 04:26:20PM -0400, Jagannathan Raman wrote:
> This is v12 of the server side changes to enable vfio-user in QEMU.
> 
> Thanks so much for reviewing this series and sharing your feedback.
> 
> We made the following changes in this series:
> [PATCH v12 13/14] vfio-user: handle device interrupts
>  - Renamed msi_set_irq_state() and msix_set_irq_state() as
>    msi_set_mask() and msix_set_mask() respectively
>  - Added missing return statement for error case in msi_set_mask()

Thanks, applied to my block tree:
https://gitlab.com/stefanha/qemu/commits/block

Stefan
Re: [PATCH v12 00/14] vfio-user server in QEMU
Posted by Jag Raman 1 year, 10 months ago

> On Jun 14, 2022, at 3:06 AM, Stefan Hajnoczi <stefanha@redhat.com> wrote:
> 
> On Mon, Jun 13, 2022 at 04:26:20PM -0400, Jagannathan Raman wrote:
>> This is v12 of the server side changes to enable vfio-user in QEMU.
>> 
>> Thanks so much for reviewing this series and sharing your feedback.
>> 
>> We made the following changes in this series:
>> [PATCH v12 13/14] vfio-user: handle device interrupts
>> - Renamed msi_set_irq_state() and msix_set_irq_state() as
>>   msi_set_mask() and msix_set_mask() respectively
>> - Added missing return statement for error case in msi_set_mask()
> 
> Thanks, applied to my block tree:
> https://gitlab.com/stefanha/qemu/commits/block

Thank you very much, Stefan! :)

> 
> Stefan
Re: [PATCH v12 00/14] vfio-user server in QEMU
Posted by Stefan Hajnoczi 1 year, 10 months ago
On Tue, Jun 14, 2022 at 02:37:02PM +0000, Jag Raman wrote:
> > On Jun 14, 2022, at 3:06 AM, Stefan Hajnoczi <stefanha@redhat.com> wrote:
> > 
> > On Mon, Jun 13, 2022 at 04:26:20PM -0400, Jagannathan Raman wrote:
> >> This is v12 of the server side changes to enable vfio-user in QEMU.
> >> 
> >> Thanks so much for reviewing this series and sharing your feedback.
> >> 
> >> We made the following changes in this series:
> >> [PATCH v12 13/14] vfio-user: handle device interrupts
> >> - Renamed msi_set_irq_state() and msix_set_irq_state() as
> >>   msi_set_mask() and msix_set_mask() respectively
> >> - Added missing return statement for error case in msi_set_mask()
> > 
> > Thanks, applied to my block tree:
> > https://gitlab.com/stefanha/qemu/commits/block
> 
> Thank you very much, Stefan! :)

You're welcome! Thanks for the persistence in getting the vfio-user
server into QEMU.

I have mirrored libvfio-user here:
https://gitlab.com/qemu-project/libvfio-user

The QEMU project's policy is to mirror dependencies so full source code
can be provided even in the event that dependencies become unavailable.
The mirror is currently manually updated, so please ping me if you want
newer commits.

Thanks,
Stefan
Re: [PATCH v12 00/14] vfio-user server in QEMU
Posted by Stefan Hajnoczi 1 year, 10 months ago
On Tue, 14 Jun 2022 at 17:38, Stefan Hajnoczi <stefanha@redhat.com> wrote:
>
> On Tue, Jun 14, 2022 at 02:37:02PM +0000, Jag Raman wrote:
> > > On Jun 14, 2022, at 3:06 AM, Stefan Hajnoczi <stefanha@redhat.com> wrote:
> > >
> > > On Mon, Jun 13, 2022 at 04:26:20PM -0400, Jagannathan Raman wrote:
> > >> This is v12 of the server side changes to enable vfio-user in QEMU.
> > >>
> > >> Thanks so much for reviewing this series and sharing your feedback.
> > >>
> > >> We made the following changes in this series:
> > >> [PATCH v12 13/14] vfio-user: handle device interrupts
> > >> - Renamed msi_set_irq_state() and msix_set_irq_state() as
> > >>   msi_set_mask() and msix_set_mask() respectively
> > >> - Added missing return statement for error case in msi_set_mask()
> > >
> > > Thanks, applied to my block tree:
> > > https://gitlab.com/stefanha/qemu/commits/block
> >
> > Thank you very much, Stefan! :)
>
> You're welcome! Thanks for the persistence in getting the vfio-user
> server into QEMU.
>
> I have mirrored libvfio-user here:
> https://gitlab.com/qemu-project/libvfio-user
>
> The QEMU project's policy is to mirror dependencies so full source code
> can be provided even in the event that dependencies become unavailable.
> The mirror is currently manually updated, so please ping me if you want
> newer commits.

I have semi-automated the mirroring. As long as I use my laptop the
repo will be kept up-to-date. :)

Stefan