On Fri, 2009-10-16 at 09:38 +0800, Cinco, Dante wrote:
> I'm confused why there are 4 sets of IRQs: dom0 lspci:[11,10,7,5], domU
> lspci proc interrupts:[48,49,50,51], pirq:[76,77,78,79], guest int
> info:[74,75,76,77].
This is indeed a little confusing at first, I'll try to differentiate
them here:
1. dom0 IRQ [11,10,7,5]: this is decided by dom0 kernel, through
information from host ACPI
2. domU IRQ [48,49,50,51]: this is decided by domU kernel, through
virtual ACPI present to guest. If there are multiple domUs, this
space overlaps
3. pirq [76,77,79,79]: this is a per domain concept, it has nothing
to do with the physical or virtual irq number, the sole purpose
is to provide an interface between domains (mainly PV) and
hypervisor. GSI part happens to be indentical mapped though.
4. irq [74,75,76,77]: global hypervisor concept, to track all irqs
for all domains, origininally named `vector', the name changes
when hypervisor per-CPU vectoring is introduced.
> pt_msi_update: Update msi with pirq 4f gvec 71 gflags 2 (What is the
> significance of gflags 2?)
> pt_msi_update: Update msi with pirq 4f gvec b1 gflags 2
gflags is a custom interface that incorporates address and data:
DM, dest, etc. gflags=2 means DM=0 des=2.
The first line is an intermediate result, print when guest updates the
MSI address, the second line indicates an update to MSI data.
> (XEN) Guest interrupt information:
> (XEN) IRQ: 74, IRQ affinity:0x00000001, Vec: 60 type=PCI-MSI
> status=00000010 in-flight=0 domain-list=1: 79(----),
>
> echo 2 > /proc/irq/48/smp_affinity
>
> (XEN) Guest interrupt information: (IRQ affinity changed from 1 to 2, while
> vector changed from 60 to 92)
> (XEN) IRQ: 74, IRQ affinity:0x00000002, Vec: 92 type= PCI-MSI
> status=00000010 in-flight=1 domain-list=1: 79(---M),
`(---M)' means masked, that may be why the irq is not received.
Thanks,
Qing
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|