From: "Cédric Le Goater" <clg@redhat.com>
To: qemu-devel@nongnu.org, Alex Williamson <alex.williamson@redhat.com>
Cc: "Avihai Horon" <avihaih@nvidia.com>,
"Eric Auger" <eric.auger@redhat.com>,
"Zhenzhong Duan" <zhenzhong.duan@intel.com>,
"Cédric Le Goater" <clg@redhat.com>
Subject: [PATCH for-10.1 00/32] vfio: Spring cleanup
Date: Tue, 18 Mar 2025 10:53:43 +0100 [thread overview]
Message-ID: <20250318095415.670319-1-clg@redhat.com> (raw)
Hello,
Several large extensions were merged in VFIO recently: migration
support with dirty tracking, support for different host IOMMU backend
devices, multifd support, etc. This adds up to the previous
extensions: vfio-platform, AP, CCW. The result is that VFIO is now a
subsystem of over +16,000 lines of code :
QEMU 2.0 : 3988 total
QEMU 2.12 : 9336 total
QEMU 6.2 : 12715 total
QEMU 8.2 : 13690 total
QEMU 9.2 : 15680 total
QEMU 10.0 : 16607 total
Organization is weak, naming inconsistent, the vfio-common.h header
file and common.c are quite messy. It's time to address the technical
debt before adding new features.
This proposal reorganizes some of the VFIO files to isolate features,
introduces new files and renames services to better reflect the
namespace they belong to. This is code reshuffling and there are no
intentional functional changes. If more could be done, please propose !
Timing seems right.
I hope we can merge this when the QEMU 10.1 cycle starts and then
address the two large series waiting : live update and vfio-user.
Thanks,
C.
Cédric Le Goater (32):
vfio: Move vfio_mig_active() into migration.c
vfio: Rename vfio_reset_bytes_transferred()
vfio: Introduce a new header file for external migration services
vfio: Make vfio_un/block_multiple_devices_migration() static
vfio: Make vfio_viommu_preset() static
vfio: Introduce a new header file for internal migration services
vfio: Introduce a new header file for VFIOdisplay declarations
vfio: Move VFIOHostDMAWindow definition into spapr.c
vfio: Introduce a new header file for VFIOIOMMUFD declarations
vfio: Introduce new files for VFIORegion definitions and declarations
vfio: Introduce a new header file for VFIOcontainer declarations
vfio: Make vfio_group_list static
vfio: Move VFIOAddressSpace helpers into container-base.c
vfio: Move Host IOMMU type declarations into their respective files
vfio: Introduce a new header file for helper services
vfio: Move vfio_get_info_dma_avail() into helpers.c
vfio: Move vfio_kvm_device_add/del_fd() to helpers.c
vfio: Move vfio_get_device_info() to helpers.c
vfio: Introduce a new file for VFIODevice definitions
vfio: Introduce new files for CPR definitions and declarations
vfio: Move vfio_kvm_device_fd() into helpers.c
vfio: Move vfio_device_list into device.c
vfio: Move vfio_de/attach_device() into device.c
vfio: Introduce new files for dirty tracking definitions and
declarations
vfio: Move vfio_set_migration_error() into migration.c
vfio: Rename vfio-common.h to vfio-device.h
vfio: Rename VFIODevice related services
vfio: Make vfio_devices_query_dirty_bitmap() static
vfio: Rename VFIOContainer related services
vfio: Rename VFIO dirty tracking services
vfio: Introduce vfio_dirty_tracking_un/register() routines
vfio: Rename RAM discard related services
hw/vfio/cpr.h | 15 +
hw/vfio/dirty-tracking.h | 19 +
hw/vfio/display.h | 42 ++
hw/vfio/helpers.h | 35 ++
hw/vfio/iommufd.h | 29 +
hw/vfio/migration-multifd.h | 2 +-
hw/vfio/migration.h | 73 +++
hw/vfio/pci.h | 3 +-
include/hw/s390x/vfio-ccw.h | 2 +-
include/hw/vfio/vfio-common.h | 346 ------------
include/hw/vfio/vfio-container-base.h | 5 +
include/hw/vfio/vfio-container.h | 35 ++
include/hw/vfio/vfio-device.h | 148 ++++++
include/hw/vfio/vfio-migration.h | 17 +
include/hw/vfio/vfio-platform.h | 4 +-
include/hw/vfio/vfio-region.h | 47 ++
backends/iommufd.c | 2 +-
hw/core/sysbus-fdt.c | 1 +
hw/ppc/spapr_pci_vfio.c | 6 +-
hw/s390x/s390-pci-vfio.c | 3 +-
hw/vfio/ap.c | 10 +-
hw/vfio/ccw.c | 20 +-
hw/vfio/container-base.c | 69 +++
hw/vfio/container.c | 123 ++---
hw/vfio/cpr.c | 3 +-
hw/vfio/device.c | 371 +++++++++++++
hw/vfio/{common.c => dirty-tracking.c} | 382 ++------------
hw/vfio/display.c | 4 +-
hw/vfio/helpers.c | 702 +++----------------------
hw/vfio/igd.c | 8 +-
hw/vfio/iommufd.c | 25 +-
hw/vfio/migration-multifd.c | 4 +-
hw/vfio/migration.c | 112 +++-
hw/vfio/pci-quirks.c | 1 +
hw/vfio/pci.c | 51 +-
hw/vfio/platform.c | 11 +-
hw/vfio/region.c | 396 ++++++++++++++
hw/vfio/spapr.c | 10 +-
migration/target.c | 4 +-
hw/vfio/meson.build | 8 +-
hw/vfio/trace-events | 36 +-
41 files changed, 1711 insertions(+), 1473 deletions(-)
create mode 100644 hw/vfio/cpr.h
create mode 100644 hw/vfio/dirty-tracking.h
create mode 100644 hw/vfio/display.h
create mode 100644 hw/vfio/helpers.h
create mode 100644 hw/vfio/iommufd.h
create mode 100644 hw/vfio/migration.h
delete mode 100644 include/hw/vfio/vfio-common.h
create mode 100644 include/hw/vfio/vfio-container.h
create mode 100644 include/hw/vfio/vfio-device.h
create mode 100644 include/hw/vfio/vfio-migration.h
create mode 100644 include/hw/vfio/vfio-region.h
create mode 100644 hw/vfio/device.c
rename hw/vfio/{common.c => dirty-tracking.c} (81%)
create mode 100644 hw/vfio/region.c
--
2.48.1
next reply other threads:[~2025-03-18 9:55 UTC|newest]
Thread overview: 114+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-18 9:53 Cédric Le Goater [this message]
2025-03-18 9:53 ` [PATCH for-10.1 01/32] vfio: Move vfio_mig_active() into migration.c Cédric Le Goater
2025-03-19 9:10 ` John Levon
2025-03-19 11:54 ` Avihai Horon
2025-03-19 16:38 ` Cédric Le Goater
2025-03-18 9:53 ` [PATCH for-10.1 02/32] vfio: Rename vfio_reset_bytes_transferred() Cédric Le Goater
2025-03-19 7:33 ` Philippe Mathieu-Daudé
2025-03-19 9:10 ` John Levon
2025-03-19 12:07 ` Avihai Horon
2025-03-18 9:53 ` [PATCH for-10.1 03/32] vfio: Introduce a new header file for external migration services Cédric Le Goater
2025-03-19 11:48 ` Prasad Pandit
2025-03-19 12:37 ` Avihai Horon
2025-03-19 16:49 ` Cédric Le Goater
2025-03-18 9:53 ` [PATCH for-10.1 04/32] vfio: Make vfio_un/block_multiple_devices_migration() static Cédric Le Goater
2025-03-19 12:38 ` Joao Martins
2025-03-18 9:53 ` [PATCH for-10.1 05/32] vfio: Make vfio_viommu_preset() static Cédric Le Goater
2025-03-19 12:26 ` Joao Martins
2025-03-19 16:50 ` John Levon
2025-03-18 9:53 ` [PATCH for-10.1 06/32] vfio: Introduce a new header file for internal migration services Cédric Le Goater
2025-03-19 12:29 ` Prasad Pandit
2025-03-19 17:26 ` Cédric Le Goater
2025-03-20 6:19 ` Prasad Pandit
2025-03-19 14:05 ` Avihai Horon
2025-03-19 17:33 ` Cédric Le Goater
2025-03-19 16:55 ` John Levon
2025-03-18 9:53 ` [PATCH for-10.1 07/32] vfio: Introduce a new header file for VFIOdisplay declarations Cédric Le Goater
2025-03-20 9:50 ` John Levon
2025-03-18 9:53 ` [PATCH for-10.1 08/32] vfio: Move VFIOHostDMAWindow definition into spapr.c Cédric Le Goater
2025-03-20 9:43 ` John Levon
2025-03-18 9:53 ` [PATCH for-10.1 09/32] vfio: Introduce a new header file for VFIOIOMMUFD declarations Cédric Le Goater
2025-03-19 9:09 ` John Levon
2025-03-20 9:18 ` Duan, Zhenzhong
2025-03-20 13:37 ` Cédric Le Goater
2025-03-18 9:53 ` [PATCH for-10.1 10/32] vfio: Introduce new files for VFIORegion definitions and declarations Cédric Le Goater
2025-03-19 16:54 ` John Levon
2025-03-18 9:53 ` [PATCH for-10.1 11/32] vfio: Introduce a new header file for VFIOcontainer declarations Cédric Le Goater
2025-03-19 17:00 ` John Levon
2025-03-20 9:24 ` Duan, Zhenzhong
2025-03-18 9:53 ` [PATCH for-10.1 12/32] vfio: Make vfio_group_list static Cédric Le Goater
2025-03-20 9:28 ` Duan, Zhenzhong
2025-03-20 9:38 ` John Levon
2025-03-18 9:53 ` [PATCH for-10.1 13/32] vfio: Move VFIOAddressSpace helpers into container-base.c Cédric Le Goater
2025-03-19 16:45 ` John Levon
2025-03-20 9:36 ` Duan, Zhenzhong
2025-03-20 19:26 ` Cédric Le Goater
2025-03-21 7:18 ` Duan, Zhenzhong
2025-03-18 9:53 ` [PATCH for-10.1 14/32] vfio: Move Host IOMMU type declarations into their respective files Cédric Le Goater
2025-03-19 9:10 ` John Levon
2025-03-20 9:36 ` Duan, Zhenzhong
2025-03-18 9:53 ` [PATCH for-10.1 15/32] vfio: Introduce a new header file for helper services Cédric Le Goater
2025-03-20 9:40 ` John Levon
2025-03-21 9:25 ` Cédric Le Goater
2025-03-21 11:17 ` John Levon
2025-03-18 9:53 ` [PATCH for-10.1 16/32] vfio: Move vfio_get_info_dma_avail() into helpers.c Cédric Le Goater
2025-03-19 16:50 ` John Levon
2025-03-18 9:54 ` [PATCH for-10.1 17/32] vfio: Move vfio_kvm_device_add/del_fd() to helpers.c Cédric Le Goater
2025-03-19 16:46 ` John Levon
2025-03-20 9:40 ` Duan, Zhenzhong
2025-03-18 9:54 ` [PATCH for-10.1 18/32] vfio: Move vfio_get_device_info() " Cédric Le Goater
2025-03-20 9:41 ` John Levon
2025-03-20 9:42 ` Duan, Zhenzhong
2025-03-18 9:54 ` [PATCH for-10.1 19/32] vfio: Introduce a new file for VFIODevice definitions Cédric Le Goater
2025-03-19 16:42 ` John Levon
2025-03-20 9:01 ` Cédric Le Goater
2025-03-18 9:54 ` [PATCH for-10.1 20/32] vfio: Introduce new files for CPR definitions and declarations Cédric Le Goater
2025-03-19 17:01 ` John Levon
2025-03-18 9:54 ` [PATCH for-10.1 21/32] vfio: Move vfio_kvm_device_fd() into helpers.c Cédric Le Goater
2025-03-20 9:44 ` John Levon
2025-03-18 9:54 ` [PATCH for-10.1 22/32] vfio: Move vfio_device_list into device.c Cédric Le Goater
2025-03-20 9:29 ` John Levon
2025-03-18 9:54 ` [PATCH for-10.1 23/32] vfio: Move vfio_de/attach_device() " Cédric Le Goater
2025-03-19 16:58 ` John Levon
2025-03-18 9:54 ` [PATCH for-10.1 24/32] vfio: Introduce new files for dirty tracking definitions and declarations Cédric Le Goater
2025-03-19 13:23 ` Joao Martins
2025-03-20 9:46 ` John Levon
2025-03-21 9:29 ` Cédric Le Goater
2025-03-20 9:52 ` Duan, Zhenzhong
2025-03-20 11:00 ` Joao Martins
2025-03-21 6:24 ` Duan, Zhenzhong
2025-03-21 9:31 ` Cédric Le Goater
2025-03-21 9:44 ` Duan, Zhenzhong
2025-03-18 9:54 ` [PATCH for-10.1 25/32] vfio: Move vfio_set_migration_error() into migration.c Cédric Le Goater
2025-03-19 12:12 ` Prasad Pandit
2025-03-21 10:19 ` Cédric Le Goater
2025-03-24 4:40 ` Prasad Pandit
2025-03-19 17:00 ` John Levon
2025-03-18 9:54 ` [PATCH for-10.1 26/32] vfio: Rename vfio-common.h to vfio-device.h Cédric Le Goater
2025-03-19 14:27 ` Avihai Horon
2025-03-21 11:03 ` Cédric Le Goater
2025-03-19 16:56 ` John Levon
2025-03-18 9:54 ` [PATCH for-10.1 27/32] vfio: Rename VFIODevice related services Cédric Le Goater
2025-03-20 9:35 ` John Levon
2025-03-18 9:54 ` [PATCH for-10.1 28/32] vfio: Make vfio_devices_query_dirty_bitmap() static Cédric Le Goater
2025-03-19 12:14 ` Joao Martins
2025-03-19 16:54 ` John Levon
2025-03-18 9:54 ` [PATCH for-10.1 29/32] vfio: Rename VFIOContainer related services Cédric Le Goater
2025-03-20 9:38 ` John Levon
2025-03-18 9:54 ` [PATCH for-10.1 30/32] vfio: Rename VFIO dirty tracking services Cédric Le Goater
2025-03-19 12:21 ` Joao Martins
2025-03-20 11:13 ` Avihai Horon
2025-03-20 11:18 ` Joao Martins
2025-03-20 11:45 ` Avihai Horon
2025-03-20 11:56 ` Joao Martins
2025-03-20 12:24 ` Avihai Horon
2025-03-21 11:22 ` Cédric Le Goater
2025-03-31 12:49 ` Joao Martins
2025-03-31 13:14 ` Cédric Le Goater
2025-03-20 9:42 ` John Levon
2025-03-18 9:54 ` [PATCH for-10.1 31/32] vfio: Introduce vfio_dirty_tracking_un/register() routines Cédric Le Goater
2025-03-19 13:24 ` Joao Martins
2025-03-20 12:28 ` Joao Martins
2025-03-20 9:49 ` John Levon
2025-03-18 9:54 ` [PATCH for-10.1 32/32] vfio: Rename RAM discard related services Cédric Le Goater
2025-03-19 16:57 ` John Levon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250318095415.670319-1-clg@redhat.com \
--to=clg@redhat.com \
--cc=alex.williamson@redhat.com \
--cc=avihaih@nvidia.com \
--cc=eric.auger@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=zhenzhong.duan@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).