All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v6 00/19] vfio-user server in QEMU
@ 2022-02-17  7:48 Jagannathan Raman
  2022-02-17  7:48 ` [PATCH v6 01/19] configure, meson: override C compiler for cmake Jagannathan Raman
                   ` (18 more replies)
  0 siblings, 19 replies; 76+ messages in thread
From: Jagannathan Raman @ 2022-02-17  7:48 UTC (permalink / raw)
  To: qemu-devel
  Cc: eduardo, elena.ufimtseva, john.g.johnson, berrange, bleal,
	john.levon, mst, armbru, quintela, f4bug, alex.williamson,
	kanth.ghatraju, stefanha, thanos.makatos, pbonzini, jag.raman,
	eblake, dgilbert

Hi,

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

Thank you very much for your feedback for the last revision which
helped to streamline the overall design. We've made the following
changes to this revision:

[PATCH v6 03/19] qdev: unplug blocker for devices
  - removed test which prevented an unplug blocker
    from getting added if migration was in progress
  - added comments to function

[PATCH v6 04/19] remote/machine: add HotplugHandler for remote machine
  - changed commit message prefix from vfio-user to "remote/machine"

[PATCH v6 05/19] remote/machine: add vfio-user property
  - new in this series

[PATCH v6 07/19] vfio-user: define vfio-user-server object
  - fixed typo noted in the review
  - moved error message before setting "o->socket = NULL" in
    vfu_object_set_socket()
  - added "vfio-user=on" to the usage comment at the top of file

[PATCH v6 08/19] vfio-user: instantiate vfio-user context
  - added error message to the object set property message when
    server is already running

[PATCH v6 09/19] vfio-user: find and init PCI device
  - added more detailed error message for device unplug blocker

[PATCH v6 10/19] vfio-user: run vfio-user context
  - send ID of device in VFU_CLIENT_HANGUP instead of path
  - disable FD handler in object finalize

[PATCH v6 12/19] vfio-user: IOMMU support for remote device
  - new in this series

[PATCH v6 13/19] vfio-user: handle DMA mappings
  - Setup IOMMU for remote machine if vfio-user is enabled
  - Map/Unmap the DMA regions in the IOMMU address space in
    dma_register()/dma_unregister() using
    pci_device_iommu_address_space() function

[PATCH v6 14/19] vfio-user: handle PCI BAR accesses
  - vfu_object_bar_rw() - directly access the bar region
    instead of accessing via address_space_rw()
  - register handler for PCI ROM region
  - set read only flags for read only MemoryRegions with
    vfu_setup_region()

[PATCH v6 15/19] vfio-user: handle device interrupts
  - setup separate PCI bus map_irq and set_irq for
    vfio-user during remote machine init
  - index hash table using PCI bud device function numbers

[PATCH v6 16/19] vfio-user: handle device interrupts
  - new in this series

[PATCH v6 17/19] vfio-user: register handlers to facilitate migration
  - enable streaming for migration data instead pre-determining
    the migration data size at boot
  - dropped migrated_devs static variable to track the number of
    devices migrated
  - added helper functions to independently start stop block and
    network devices
  - updated qemu_remote_savevm() to migrate data of all the
    devices under the target device

[PATCH v6 18/19] vfio-user: handle reset of remote device
  - new in this series

[PATCH v6 19/19] vfio-user: avocado tests for vfio-user
  - use QMP command for hotplug instead of HMP command
  - confirm the state of source and destination VMs after migration
  - testing megasas device instead of lsi53c895a as lsi53c895a
    doesn't seem to support IOMMU, which is enabled by default
    on the server

We dropped the following patches from the previous revision:
  - pci: isolated address space for PCI bus
  - pci: create and free isolated PCI buses
  - vfio-user: set qdev bus callbacks for remote machine

We are looking forward to your comments.

Thank you very much!

Jagannathan Raman (19):
  configure, meson: override C compiler for cmake
  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
  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
  softmmu/vl: defer backend init
  vfio-user: register handlers to facilitate migration
  vfio-user: handle reset of remote device
  vfio-user: avocado tests for vfio-user

 configure                                  |   21 +-
 meson.build                                |   44 +-
 qapi/misc.json                             |   23 +
 qapi/qom.json                              |   20 +-
 include/block/block.h                      |    1 +
 include/exec/memory.h                      |    3 +
 include/hw/pci/pci.h                       |    6 +
 include/hw/qdev-core.h                     |   35 +
 include/hw/remote/iommu.h                  |   18 +
 include/hw/remote/machine.h                |    2 +
 include/hw/remote/vfio-user-obj.h          |    6 +
 include/migration/vmstate.h                |    2 +
 include/sysemu/sysemu.h                    |    4 +
 migration/savevm.h                         |    2 +
 block.c                                    |    5 +
 block/block-backend.c                      |    3 +-
 blockdev.c                                 |    2 +-
 hw/pci/msi.c                               |   13 +-
 hw/pci/msix.c                              |   12 +-
 hw/remote/iommu.c                          |   78 ++
 hw/remote/machine.c                        |   54 +-
 hw/remote/vfio-user-obj.c                  | 1286 ++++++++++++++++++++
 migration/savevm.c                         |   89 ++
 migration/vmstate.c                        |   19 +
 softmmu/physmem.c                          |    4 +-
 softmmu/qdev-monitor.c                     |   26 +
 softmmu/vl.c                               |   17 +
 stubs/defer-backend-init.c                 |    7 +
 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                                |    7 +
 hw/remote/Kconfig                          |    4 +
 hw/remote/meson.build                      |    4 +
 hw/remote/trace-events                     |   11 +
 meson_options.txt                          |    2 +
 stubs/meson.build                          |    2 +
 subprojects/libvfio-user                   |    1 +
 tests/avocado/avocado_qemu/__init__.py     |   14 +-
 tests/avocado/vfio-user.py                 |  234 ++++
 tests/docker/dockerfiles/centos8.docker    |    2 +
 tests/docker/dockerfiles/ubuntu2004.docker |    2 +
 44 files changed, 2088 insertions(+), 21 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/defer-backend-init.c
 create mode 100644 stubs/vfio-user-obj.c
 create mode 160000 subprojects/libvfio-user
 create mode 100644 tests/avocado/vfio-user.py

-- 
2.20.1



^ permalink raw reply	[flat|nested] 76+ messages in thread

end of thread, other threads:[~2022-04-04  9:48 UTC | newest]

Thread overview: 76+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-17  7:48 [PATCH v6 00/19] vfio-user server in QEMU Jagannathan Raman
2022-02-17  7:48 ` [PATCH v6 01/19] configure, meson: override C compiler for cmake Jagannathan Raman
2022-02-17 12:09   ` Peter Maydell
2022-02-17 15:49     ` Jag Raman
2022-02-18  3:40     ` Jag Raman
2022-02-18 12:13       ` Paolo Bonzini
2022-02-18 14:49         ` Jag Raman
2022-02-18 15:16           ` Jag Raman
2022-02-20  8:27           ` Paolo Bonzini
2022-02-20 13:27             ` Paolo Bonzini
2022-02-22 19:05             ` Jag Raman
2022-02-24 17:52               ` Paolo Bonzini
2022-02-25  4:03                 ` Jag Raman
2022-02-28 18:12                   ` Paolo Bonzini
2022-02-28 19:55                     ` Jag Raman
2022-02-17  7:48 ` [PATCH v6 02/19] tests/avocado: Specify target VM argument to helper routines Jagannathan Raman
2022-02-17  7:48 ` [PATCH v6 03/19] qdev: unplug blocker for devices Jagannathan Raman
2022-02-21 15:27   ` Stefan Hajnoczi
2022-02-28 16:23     ` Jag Raman
2022-02-21 15:30   ` Stefan Hajnoczi
2022-02-28 19:11     ` Jag Raman
2022-02-17  7:48 ` [PATCH v6 04/19] remote/machine: add HotplugHandler for remote machine Jagannathan Raman
2022-02-21 15:30   ` Stefan Hajnoczi
2022-02-17  7:48 ` [PATCH v6 05/19] remote/machine: add vfio-user property Jagannathan Raman
2022-02-21 15:32   ` Stefan Hajnoczi
2022-02-17  7:48 ` [PATCH v6 06/19] vfio-user: build library Jagannathan Raman
2022-02-17  7:48 ` [PATCH v6 07/19] vfio-user: define vfio-user-server object Jagannathan Raman
2022-02-21 15:37   ` Stefan Hajnoczi
2022-02-28 19:14     ` Jag Raman
2022-03-02 16:45       ` Stefan Hajnoczi
2022-02-25 15:42   ` Eric Blake
2022-02-17  7:48 ` [PATCH v6 08/19] vfio-user: instantiate vfio-user context Jagannathan Raman
2022-02-21 15:42   ` Stefan Hajnoczi
2022-02-28 19:16     ` Jag Raman
2022-02-17  7:48 ` [PATCH v6 09/19] vfio-user: find and init PCI device Jagannathan Raman
2022-02-21 15:57   ` Stefan Hajnoczi
2022-02-28 19:17     ` Jag Raman
2022-02-17  7:48 ` [PATCH v6 10/19] vfio-user: run vfio-user context Jagannathan Raman
2022-02-22 10:13   ` Stefan Hajnoczi
2022-02-25 16:06   ` Eric Blake
2022-02-28 19:22     ` Jag Raman
2022-02-17  7:48 ` [PATCH v6 11/19] vfio-user: handle PCI config space accesses Jagannathan Raman
2022-02-22 11:09   ` Stefan Hajnoczi
2022-02-28 19:23     ` Jag Raman
2022-02-17  7:48 ` [PATCH v6 12/19] vfio-user: IOMMU support for remote device Jagannathan Raman
2022-02-22 10:40   ` Stefan Hajnoczi
2022-02-28 19:54     ` Jag Raman
2022-03-02 16:49       ` Stefan Hajnoczi
2022-03-03 14:49         ` Jag Raman
2022-03-07  9:45           ` Stefan Hajnoczi
2022-03-07 14:42             ` Jag Raman
2022-03-08 10:04               ` Stefan Hajnoczi
2022-02-17  7:49 ` [PATCH v6 13/19] vfio-user: handle DMA mappings Jagannathan Raman
2022-02-17  7:49 ` [PATCH v6 14/19] vfio-user: handle PCI BAR accesses Jagannathan Raman
2022-02-22 11:04   ` Stefan Hajnoczi
2022-02-17  7:49 ` [PATCH v6 15/19] vfio-user: handle device interrupts Jagannathan Raman
2022-03-07 10:24   ` Stefan Hajnoczi
2022-03-07 15:10     ` Jag Raman
2022-03-08 10:15       ` Stefan Hajnoczi
2022-03-26 23:47     ` Jag Raman
2022-03-29 14:24       ` Stefan Hajnoczi
2022-03-29 19:06         ` Jag Raman
2022-03-30  9:40           ` Thanos Makatos
2022-04-04  9:44             ` Stefan Hajnoczi
2022-02-17  7:49 ` [PATCH v6 16/19] softmmu/vl: defer backend init Jagannathan Raman
2022-03-07 10:48   ` Stefan Hajnoczi
2022-03-07 15:31     ` Jag Raman
2022-02-17  7:49 ` [PATCH v6 17/19] vfio-user: register handlers to facilitate migration Jagannathan Raman
2022-02-18 12:20   ` Paolo Bonzini
2022-02-18 14:55     ` Jag Raman
2022-03-07 11:26   ` Stefan Hajnoczi
2022-02-17  7:49 ` [PATCH v6 18/19] vfio-user: handle reset of remote device Jagannathan Raman
2022-03-07 11:36   ` Stefan Hajnoczi
2022-03-07 15:37     ` Jag Raman
2022-03-08 10:21       ` Stefan Hajnoczi
2022-02-17  7:49 ` [PATCH v6 19/19] vfio-user: avocado tests for vfio-user Jagannathan Raman

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.