qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] pci irq confusion


From: Ed Swierk
Subject: Re: [Qemu-devel] pci irq confusion
Date: Mon, 18 May 2009 10:24:02 -0700

On Fri, May 15, 2009 at 1:39 AM, Gerd Hoffmann <address@hidden> wrote:
> Putting the three info sources into a table gives this picture:
>
>                        |  qemu  |  lspci  |  driver
> ------------------------+--------+---------+----------
> 00:01.2  usb            |    9   |     9   |     9
> 00:01.3  acpi           |   11   |     9   |    11
> 00:03.0  xen-platform   |   11   |    11   |    11
> 00:04.0  scsi           |    9   |     9   |     9
> 00:05.0  virtio-blk     |   11   |    10   |    10
> 00:06.0  virtio-baloon  |    9   |     9   |     9
>
> Note the inconsistencies for acpi and virtio-blk.  Where do they come from?
>  Is that normal?  Or is that something which needs fixing?

qemu's "info pci" monitor command gets the IRQ value from offset 0x3c
in the device's PCI config space, which is a useless scratch register.
Some BIOSes may write to this register the actual IRQ assigned to the
device, but many don't, and I don't know of any OS that relies on it.
IMHO this IRQ value is misleading and shouldn't be reported by qemu at
all.

lspci reads IRQ info for each device from sysfs, and represents the
IRQ on which Linux would expect to receive device interrupts if the
driver requested PCI interrupts. /proc/interrupts shows the IRQs that
have actually been associated with device drivers that requested them,
PCI or otherwise.

I'm no expert on ACPI but it appears that the Linux ACPI driver
doesn't use PCI interrupts, and is instead assigned an IRQ through
some other means; the PCI IRQ that Linux happens to associate with
device 00:01.3 is never used.

--Ed




reply via email to

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