qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 3/9] util/vfio-helpers: Trace PCI BAR region info


From: Philippe Mathieu-Daudé
Subject: Re: [PATCH 3/9] util/vfio-helpers: Trace PCI BAR region info
Date: Wed, 14 Oct 2020 14:42:25 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.3.1

On 10/14/20 2:23 PM, Fam Zheng wrote:
On Wed, 2020-10-14 at 13:52 +0200, Philippe Mathieu-Daudé wrote:
For debug purpose, trace BAR regions info.

Signed-off-by: Philippe Mathieu-Daudé <philmd@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);

Where is barname freed?

Using GLib g_autofree qualifier.


Fam

+    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





reply via email to

[Prev in Thread] Current Thread [Next in Thread]