>-----Original Message----- >From: Cédric Le Goater <c...@redhat.com> >Subject: [PATCH for-10.1 24/32] vfio: Introduce new files for dirty tracking >definitions and declarations > >File "common.c" has been emptied of most of its definitions by the >previous changes and the only definitions left are related to dirty >tracking. Rename it to "dirty-tracking.c" and introduce its associated >"dirty-tracking.h" header file for the declarations. > >Cleanup a little the includes while at it. > >Signed-off-by: Cédric Le Goater <c...@redhat.com> >--- > hw/vfio/dirty-tracking.h | 22 ++++++++++++++++++++++ > include/hw/vfio/vfio-common.h | 10 ---------- > hw/vfio/container.c | 1 + > hw/vfio/{common.c => dirty-tracking.c} | 5 +---- > hw/vfio/iommufd.c | 1 + > hw/vfio/meson.build | 2 +- > hw/vfio/trace-events | 2 +- > 7 files changed, 27 insertions(+), 16 deletions(-) > create mode 100644 hw/vfio/dirty-tracking.h > rename hw/vfio/{common.c => dirty-tracking.c} (99%) > >diff --git a/hw/vfio/dirty-tracking.h b/hw/vfio/dirty-tracking.h >new file mode 100644 >index >0000000000000000000000000000000000000000..4b83dc54ab50dabfff040d7cc3 >db27b80bfe2d3a >--- /dev/null >+++ b/hw/vfio/dirty-tracking.h >@@ -0,0 +1,22 @@ >+/* >+ * VFIO dirty page tracking routines >+ * >+ * Copyright Red Hat, Inc. 2025 >+ * >+ * SPDX-License-Identifier: GPL-2.0-or-later >+ */ >+ >+#ifndef HW_VFIO_DIRTY_TRACKING_H >+#define HW_VFIO_DIRTY_TRACKING_H >+ >+extern const MemoryListener vfio_memory_listener; >+ >+bool vfio_devices_all_dirty_tracking_started(const VFIOContainerBase >*bcontainer); >+bool vfio_devices_all_device_dirty_tracking(const VFIOContainerBase >*bcontainer); >+int vfio_devices_query_dirty_bitmap(const VFIOContainerBase *bcontainer, >+ VFIOBitmap *vbmap, hwaddr iova, hwaddr >size, >+ Error **errp); >+int vfio_get_dirty_bitmap(const VFIOContainerBase *bcontainer, uint64_t iova, >+ uint64_t size, ram_addr_t ram_addr, Error **errp); >+ >+#endif /* HW_VFIO_DIRTY_TRACKING_H */ >diff --git a/include/hw/vfio/vfio-common.h b/include/hw/vfio/vfio-common.h >index >184a422916f62259158e8759efc473a5efb2b2f7..cc20110d9de8ac173b67e6e878 >d4d61818497426 100644 >--- a/include/hw/vfio/vfio-common.h >+++ b/include/hw/vfio/vfio-common.h >@@ -130,7 +130,6 @@ VFIODevice *vfio_get_vfio_device(Object *obj); > > typedef QLIST_HEAD(VFIODeviceList, VFIODevice) VFIODeviceList; > extern VFIODeviceList vfio_device_list; >-extern const MemoryListener vfio_memory_listener; > > #ifdef CONFIG_LINUX > int vfio_get_region_info(VFIODevice *vbasedev, int index, >@@ -140,15 +139,6 @@ int vfio_get_dev_region_info(VFIODevice *vbasedev, >uint32_t type, > bool vfio_has_region_cap(VFIODevice *vbasedev, int region, uint16_t cap_type); > #endif > >-bool vfio_devices_all_dirty_tracking_started( >- const VFIOContainerBase *bcontainer); >-bool >-vfio_devices_all_device_dirty_tracking(const VFIOContainerBase *bcontainer); >-int vfio_devices_query_dirty_bitmap(const VFIOContainerBase *bcontainer, >- VFIOBitmap *vbmap, hwaddr iova, hwaddr size, Error **errp); >-int vfio_get_dirty_bitmap(const VFIOContainerBase *bcontainer, uint64_t iova, >- uint64_t size, ram_addr_t ram_addr, Error **errp); >- > /* Returns 0 on success, or a negative errno. */ > bool vfio_device_get_name(VFIODevice *vbasedev, Error **errp); > void vfio_device_set_fd(VFIODevice *vbasedev, const char *str, Error **errp); >diff --git a/hw/vfio/container.c b/hw/vfio/container.c >index >4e41a7476549a0c5e464e499d059db5aca6e3470..e88dfe12edd6dee469c06ee2e >46ab9c8b5019ae7 100644 >--- a/hw/vfio/container.c >+++ b/hw/vfio/container.c >@@ -35,6 +35,7 @@ > #include "hw/vfio/vfio-container.h" > #include "helpers.h" > #include "cpr.h" >+#include "dirty-tracking.h" > > #define TYPE_HOST_IOMMU_DEVICE_LEGACY_VFIO >TYPE_HOST_IOMMU_DEVICE "-legacy-vfio" > >diff --git a/hw/vfio/common.c b/hw/vfio/dirty-tracking.c >similarity index 99% >rename from hw/vfio/common.c >rename to hw/vfio/dirty-tracking.c >index >ed2f2ed8839caaf40fabb0cbbcaa1df2c5b70d67..441f9d9a08c06a88dda44ef143d >cee5f0a89a900 100644 >--- a/hw/vfio/common.c >+++ b/hw/vfio/dirty-tracking.c >@@ -20,14 +20,10 @@ > > #include "qemu/osdep.h" > #include <sys/ioctl.h> >-#ifdef CONFIG_KVM >-#include <linux/kvm.h> >-#endif
It looks this change unrelated to this patch? > #include <linux/vfio.h> > > #include "hw/vfio/vfio-common.h" > #include "hw/vfio/pci.h" >-#include "exec/address-spaces.h" Same here. Thanks Zhenzhong > #include "exec/memory.h" > #include "exec/ram_addr.h" > #include "exec/target_page.h" >@@ -45,6 +41,7 @@ > #include "system/tpm.h" > #include "migration.h" > #include "helpers.h" >+#include "dirty-tracking.h" > > /* > * Device state interfaces >diff --git a/hw/vfio/iommufd.c b/hw/vfio/iommufd.c >index >b25f3b4086d7b7fc6fcd519a9b8b2904513a655f..9335a17920b32dc2bf9cb4eeb2b >8f57382f14ac8 100644 >--- a/hw/vfio/iommufd.c >+++ b/hw/vfio/iommufd.c >@@ -29,6 +29,7 @@ > #include "iommufd.h" > #include "helpers.h" > #include "cpr.h" >+#include "dirty-tracking.h" > > #define TYPE_HOST_IOMMU_DEVICE_IOMMUFD_VFIO \ > TYPE_HOST_IOMMU_DEVICE_IOMMUFD "-vfio" >diff --git a/hw/vfio/meson.build b/hw/vfio/meson.build >index >1f89bd28c13dea55bcfff476ce99d51b453d8533..b6f5a7eeeda035b5872c2a19f80 >86384e000f420 100644 >--- a/hw/vfio/meson.build >+++ b/hw/vfio/meson.build >@@ -1,6 +1,6 @@ > vfio_ss = ss.source_set() > vfio_ss.add(files( >- 'common.c', >+ 'dirty-tracking.c', > 'container.c', > 'helpers.c', > )) >diff --git a/hw/vfio/trace-events b/hw/vfio/trace-events >index >a1d01e9dde6ec52964d4804e9cbce5a6a32b7879..f3bdcebe938dcca77b913ef81a >74644c622b5d8a 100644 >--- a/hw/vfio/trace-events >+++ b/hw/vfio/trace-events >@@ -89,7 +89,7 @@ vfio_pci_igd_bdsm_enabled(const char *name, int size) >"%s %dMB" > vfio_pci_igd_host_bridge_enabled(const char *name) "%s" > vfio_pci_igd_lpc_bridge_enabled(const char *name) "%s" > >-# common.c >+# dirty-tracking.c > vfio_iommu_map_notify(const char *op, uint64_t iova_start, uint64_t iova_end) >"iommu %s @ 0x%"PRIx64" - 0x%"PRIx64 > vfio_listener_region_skip(const char *name, uint64_t start, uint64_t end) >"SKIPPING %s 0x%"PRIx64" - 0x%"PRIx64 > vfio_spapr_group_attach(int groupfd, int tablefd) "Attached groupfd %d to > liobn >fd %d" >-- >2.48.1