From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47856) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZX3ay-0005T7-Jc for qemu-devel@nongnu.org; Wed, 02 Sep 2015 04:40:41 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZX3ax-0008Dw-Ez for qemu-devel@nongnu.org; Wed, 02 Sep 2015 04:40:40 -0400 References: <1441143203-15044-1-git-send-email-lersek@redhat.com> From: Marcel Apfelbaum Message-ID: <55E6B5FB.7030907@gmail.com> Date: Wed, 2 Sep 2015 11:40:27 +0300 MIME-Version: 1.0 In-Reply-To: <1441143203-15044-1-git-send-email-lersek@redhat.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [Qemu-trivial] [trivial PATCH] hw/pci: fix pci_update_mappings() trace events Reply-To: marcel@redhat.com List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Laszlo Ersek , qemu-devel@nongnu.org Cc: qemu-trivial@nongnu.org, Don Koch , "Michael S. Tsirkin" On 09/02/2015 12:33 AM, Laszlo Ersek wrote: > The current trace prototypes and (matching) trace calls lead to > "unorthodox" PCI BDF notation in at least the stderr trace backend. For > example, the four BARs of a QXL video card at 00:01.0 (bus 0, slot 1, > function 0) are traced like this (PID and timestamps removed): > > pci_update_mappings_add d=0x7f14a73bf890 00:00.1 0,0x84000000+0x4000000 > pci_update_mappings_add d=0x7f14a73bf890 00:00.1 1,0x80000000+0x4000000 > pci_update_mappings_add d=0x7f14a73bf890 00:00.1 2,0x88200000+0x2000 > pci_update_mappings_add d=0x7f14a73bf890 00:00.1 3,0xd060+0x20 > > The slot and function values are in reverse order. > > Stick with the conventional BDF notation. > > Cc: "Michael S. Tsirkin" > Cc: Don Koch > Cc: qemu-trivial@nongnu.org > Fixes: 7828d75045 > Signed-off-by: Laszlo Ersek > --- > hw/pci/pci.c | 4 ++-- > trace-events | 4 ++-- > 2 files changed, 4 insertions(+), 4 deletions(-) > > diff --git a/hw/pci/pci.c b/hw/pci/pci.c > index 9f57aea..47f42ea 100644 > --- a/hw/pci/pci.c > +++ b/hw/pci/pci.c > @@ -1154,16 +1154,16 @@ static void pci_update_mappings(PCIDevice *d) > /* now do the real mapping */ > if (r->addr != PCI_BAR_UNMAPPED) { > trace_pci_update_mappings_del(d, pci_bus_num(d->bus), > - PCI_FUNC(d->devfn), > PCI_SLOT(d->devfn), > + PCI_FUNC(d->devfn), > i, r->addr, r->size); > memory_region_del_subregion(r->address_space, r->memory); > } > r->addr = new_addr; > if (r->addr != PCI_BAR_UNMAPPED) { > trace_pci_update_mappings_add(d, pci_bus_num(d->bus), > - PCI_FUNC(d->devfn), > PCI_SLOT(d->devfn), > + PCI_FUNC(d->devfn), > i, r->addr, r->size); > memory_region_add_subregion_overlap(r->address_space, > r->addr, r->memory, 1); > diff --git a/trace-events b/trace-events > index 8f9614a..5e78f18 100644 > --- a/trace-events > +++ b/trace-events > @@ -1303,8 +1303,8 @@ spapr_pci_lsi_set(const char *busname, int pin, uint32_t irq) "%s PIN%d IRQ %u" > spapr_pci_msi_retry(unsigned config_addr, unsigned req_num, unsigned max_irqs) "Guest device at %x asked %u, have only %u" > > # hw/pci/pci.c > -pci_update_mappings_del(void *d, uint32_t bus, uint32_t func, uint32_t slot, int bar, uint64_t addr, uint64_t size) "d=%p %02x:%02x.%x %d,%#"PRIx64"+%#"PRIx64 > -pci_update_mappings_add(void *d, uint32_t bus, uint32_t func, uint32_t slot, int bar, uint64_t addr, uint64_t size) "d=%p %02x:%02x.%x %d,%#"PRIx64"+%#"PRIx64 > +pci_update_mappings_del(void *d, uint32_t bus, uint32_t slot, uint32_t func, int bar, uint64_t addr, uint64_t size) "d=%p %02x:%02x.%x %d,%#"PRIx64"+%#"PRIx64 > +pci_update_mappings_add(void *d, uint32_t bus, uint32_t slot, uint32_t func, int bar, uint64_t addr, uint64_t size) "d=%p %02x:%02x.%x %d,%#"PRIx64"+%#"PRIx64 > > # hw/net/pcnet.c > pcnet_s_reset(void *s) "s=%p" > Reviewed-by: Marcel Apfelbaum Thanks, Marcel