On Tue, 30 May 2023 19:05:56 +0100 Joao Martins <joao.m.mart...@oracle.com> wrote:
> Include the number of dirty pages on the vfio_get_dirty_bitmap tracepoint. > These are fetched from the newly added return value in > cpu_physical_memory_set_dirty_lebitmap(). > > Signed-off-by: Joao Martins <joao.m.mart...@oracle.com> > Reviewed-by: Cédric Le Goater <c...@redhat.com> > Reviewed-by: Philippe Mathieu-Daudé <phi...@linaro.org> > --- > hw/vfio/common.c | 7 ++++--- > hw/vfio/trace-events | 2 +- > 2 files changed, 5 insertions(+), 4 deletions(-) Acked-by: Alex Williamson <alex.william...@redhat.com> > diff --git a/hw/vfio/common.c b/hw/vfio/common.c > index 78358ede2764..fa8fd949b1cf 100644 > --- a/hw/vfio/common.c > +++ b/hw/vfio/common.c > @@ -1747,6 +1747,7 @@ static int vfio_get_dirty_bitmap(VFIOContainer > *container, uint64_t iova, > { > bool all_device_dirty_tracking = > vfio_devices_all_device_dirty_tracking(container); > + uint64_t dirty_pages; > VFIOBitmap vbmap; > int ret; > > @@ -1772,11 +1773,11 @@ static int vfio_get_dirty_bitmap(VFIOContainer > *container, uint64_t iova, > goto out; > } > > - cpu_physical_memory_set_dirty_lebitmap(vbmap.bitmap, ram_addr, > - vbmap.pages); > + dirty_pages = cpu_physical_memory_set_dirty_lebitmap(vbmap.bitmap, > ram_addr, > + vbmap.pages); > > trace_vfio_get_dirty_bitmap(container->fd, iova, size, vbmap.size, > - ram_addr); > + ram_addr, dirty_pages); > out: > g_free(vbmap.bitmap); > > diff --git a/hw/vfio/trace-events b/hw/vfio/trace-events > index 646e42fd27f9..cfb60c354de3 100644 > --- a/hw/vfio/trace-events > +++ b/hw/vfio/trace-events > @@ -120,7 +120,7 @@ vfio_region_sparse_mmap_header(const char *name, int > index, int nr_areas) "Devic > vfio_region_sparse_mmap_entry(int i, unsigned long start, unsigned long end) > "sparse entry %d [0x%lx - 0x%lx]" > vfio_get_dev_region(const char *name, int index, uint32_t type, uint32_t > subtype) "%s index %d, %08x/%08x" > vfio_dma_unmap_overflow_workaround(void) "" > -vfio_get_dirty_bitmap(int fd, uint64_t iova, uint64_t size, uint64_t > bitmap_size, uint64_t start) "container fd=%d, iova=0x%"PRIx64" size= > 0x%"PRIx64" bitmap_size=0x%"PRIx64" start=0x%"PRIx64 > +vfio_get_dirty_bitmap(int fd, uint64_t iova, uint64_t size, uint64_t > bitmap_size, uint64_t start, uint64_t dirty_pages) "container fd=%d, > iova=0x%"PRIx64" size= 0x%"PRIx64" bitmap_size=0x%"PRIx64" start=0x%"PRIx64" > dirty_pages=%"PRIu64 > vfio_iommu_map_dirty_notify(uint64_t iova_start, uint64_t iova_end) "iommu > dirty @ 0x%"PRIx64" - 0x%"PRIx64 > > # platform.c