On 18/03/2025 09:54, Cédric Le Goater wrote: > 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>
Reviewed-by: Joao Martins <joao.m.mart...@oracle.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..4b83dc54ab50dabfff040d7cc3db27b80bfe2d3a > --- /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..cc20110d9de8ac173b67e6e878d4d61818497426 > 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..e88dfe12edd6dee469c06ee2e46ab9c8b5019ae7 > 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..441f9d9a08c06a88dda44ef143dcee5f0a89a900 > 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 > #include <linux/vfio.h> > > #include "hw/vfio/vfio-common.h" > #include "hw/vfio/pci.h" > -#include "exec/address-spaces.h" > #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..9335a17920b32dc2bf9cb4eeb2b8f57382f14ac8 > 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..b6f5a7eeeda035b5872c2a19f8086384e000f420 > 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..f3bdcebe938dcca77b913ef81a74644c622b5d8a > 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"