Hi Philippe, On 10/26/20 11:54 AM, Philippe Mathieu-Daudé wrote: > For debug purpose, trace BAR regions info. > > Reviewed-by: Fam Zheng <f...@euphon.net> > Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com> > Signed-off-by: Philippe Mathieu-Daudé <phi...@redhat.com> > --- > util/vfio-helpers.c | 8 ++++++++ > util/trace-events | 1 + > 2 files changed, 9 insertions(+) > > diff --git a/util/vfio-helpers.c b/util/vfio-helpers.c > index 1d4efafcaa4..cd6287c3a98 100644 > --- a/util/vfio-helpers.c > +++ b/util/vfio-helpers.c > @@ -136,6 +136,7 @@ static inline void assert_bar_index_valid(QEMUVFIOState > *s, int index) > > static int qemu_vfio_pci_init_bar(QEMUVFIOState *s, int index, Error **errp) > { > + g_autofree char *barname = NULL; > assert_bar_index_valid(s, index); > s->bar_region_info[index] = (struct vfio_region_info) { > .index = VFIO_PCI_BAR0_REGION_INDEX + index, > @@ -145,6 +146,10 @@ static int qemu_vfio_pci_init_bar(QEMUVFIOState *s, int > index, Error **errp) > error_setg_errno(errp, errno, "Failed to get BAR region info"); > return -errno; > } > + barname = g_strdup_printf("bar[%d]", index); > + trace_qemu_vfio_region_info(barname, s->bar_region_info[index].offset, > + s->bar_region_info[index].size, > + s->bar_region_info[index].cap_offset); > > return 0; > } > @@ -416,6 +421,9 @@ static int qemu_vfio_init_pci(QEMUVFIOState *s, const > char *device, > ret = -errno; > goto fail; > } > + trace_qemu_vfio_region_info("config", s->config_region_info.offset, > + s->config_region_info.size, > + s->config_region_info.cap_offset); > > for (i = 0; i < ARRAY_SIZE(s->bar_region_info); i++) { > ret = qemu_vfio_pci_init_bar(s, i, errp); > diff --git a/util/trace-events b/util/trace-events > index c048f85f828..4d40c74a21f 100644 > --- a/util/trace-events > +++ b/util/trace-events > @@ -87,3 +87,4 @@ qemu_vfio_dma_map(void *s, void *host, size_t size, bool > temporary, uint64_t *io > qemu_vfio_dma_unmap(void *s, void *host) "s %p host %p" > qemu_vfio_pci_read_config(void *buf, int ofs, int size, uint64_t region_ofs, > uint64_t region_size) "read cfg ptr %p ofs 0x%x size %d (region ofs > 0x%"PRIx64" size %"PRId64")" > qemu_vfio_pci_write_config(void *buf, int ofs, int size, uint64_t > region_ofs, uint64_t region_size) "write cfg ptr %p ofs 0x%x size %d (region > ofs 0x%"PRIx64" size %"PRId64")" > +qemu_vfio_region_info(const char *desc, uint64_t offset, uint64_t size, > uint32_t cap_offset) "region '%s' ofs 0x%"PRIx64" size %"PRId64" cap_ofs > %"PRId32 Use hexa too for the offsets and size. This is generally more readable.
Thanks Eric >