qemu-devel
[Top][All Lists]
Advanced

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

Re: [PATCH] pci: Display PCI IRQ pin in "info pci"


From: Dr. David Alan Gilbert
Subject: Re: [PATCH] pci: Display PCI IRQ pin in "info pci"
Date: Wed, 18 Mar 2020 09:23:57 +0000
User-agent: Mutt/1.13.3 (2020-01-12)

* Peter Xu (address@hidden) wrote:
> On Tue, Mar 17, 2020 at 08:21:17PM +0000, Dr. David Alan Gilbert wrote:
> > * Peter Xu (address@hidden) wrote:
> > > Sometimes it would be good to be able to read the pin number along
> > > with the IRQ number allocated.  Since we'll dump the IRQ number, no
> > > reason to not dump the pin information.  For example, the vfio-pci
> > > device will overwrite the pin with the hardware pin number.  It would
> > > be nice to know the pin number of one assigned device from QMP/HMP.
> > > 
> > > CC: Dr. David Alan Gilbert <address@hidden>
> > > CC: Alex Williamson <address@hidden>
> > > CC: Michael S. Tsirkin <address@hidden>
> > > CC: Marcel Apfelbaum <address@hidden>
> > > CC: Julia Suvorova <address@hidden>
> > > CC: Markus Armbruster <address@hidden>
> > > Signed-off-by: Peter Xu <address@hidden>
> > > ---
> > > 
> > > This helped me to debug an IRQ sharing issue, so may good to have it
> > > in master too.
> > > ---
> > >  hw/pci/pci.c       | 1 +
> > >  monitor/hmp-cmds.c | 3 ++-
> > >  qapi/misc.json     | 6 ++++--
> > >  3 files changed, 7 insertions(+), 3 deletions(-)
> > > 
> > > diff --git a/hw/pci/pci.c b/hw/pci/pci.c
> > > index e1ed6677e1..7ebf532ac9 100644
> > > --- a/hw/pci/pci.c
> > > +++ b/hw/pci/pci.c
> > > @@ -1769,6 +1769,7 @@ static PciDeviceInfo 
> > > *qmp_query_pci_device(PCIDevice *dev, PCIBus *bus,
> > >      info->regions = qmp_query_pci_regions(dev);
> > >      info->qdev_id = g_strdup(dev->qdev.id ? dev->qdev.id : "");
> > >  
> > > +    info->irq_pin = dev->config[PCI_INTERRUPT_PIN];
> > >      if (dev->config[PCI_INTERRUPT_PIN] != 0) {
> > >          info->has_irq = true;
> > >          info->irq = dev->config[PCI_INTERRUPT_LINE];
> > > diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c
> > > index 58724031ea..04c86bbb03 100644
> > > --- a/monitor/hmp-cmds.c
> > > +++ b/monitor/hmp-cmds.c
> > > @@ -680,7 +680,8 @@ static void hmp_info_pci_device(Monitor *mon, const 
> > > PciDeviceInfo *dev)
> > >      }
> > >  
> > >      if (dev->has_irq) {
> > > -        monitor_printf(mon, "      IRQ %" PRId64 ".\n", dev->irq);
> > > +        monitor_printf(mon, "      IRQ %" PRId64 ", pin %c\n",
> > > +                       dev->irq, (char)('A' + dev->irq_pin - 1));
> > 
> > Can we trust dev->irq_pin not to be something silly and generate a
> > non-printable?
> 
> It should be strictly a value between 1-4 corresponds to irq pin A-D
> (note the has_irq check masked out the zero value, or it could be
> 0-4), so I think it should always make sense. Otherwise I see it a
> qemu bug somewhere...

OK, then 

Acked-by: Dr. David Alan Gilbert <address@hidden>

for HMP.

Dave


> Thanks,
> 
> -- 
> Peter Xu
> 
--
Dr. David Alan Gilbert / address@hidden / Manchester, UK




reply via email to

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