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"


Reply via email to