On Apr 11, 2008, at 2:51 AM, Jeff Roberson wrote:
On Thu, 10 Apr 2008, Marcel Moolenaar wrote:
On Apr 10, 2008, at 10:01 PM, Jeff Roberson wrote:
On Thu, 10 Apr 2008, Marcel Moolenaar wrote:
On Apr 10, 2008, at 8:26 PM, Jeff Roberson wrote:
jeff 2008-04-11 03:26:41 UTC
FreeBSD src repository
Modified files:
sys/amd64/amd64 intr_machdep.c
sys/arm/arm intr.c
sys/i386/i386 intr_machdep.c
sys/ia64/ia64 interrupt.c
sys/kern kern_cpuset.c kern_intr.c
sys/powerpc/powerpc intr_machdep.c
sys/sparc64/sparc64 intr_machdep.c
sys/sun4v/sun4v intr_machdep.c
sys/sys cpuset.h interrupt.h
Log:
- Add the interrupt vector number to intr_event_create so MI
code can
lookup hard interrupt events by number. Ignore the irq# for
soft intrs.
JFYI: vectors are not the same as hard interrupt numbers.
On ia64 they imply priority, which means that vector
numbers should be selected for their priority and not
have a 1-to-1 mapping with IRQ number.
On powerpc they mean absolutely nothing other than being
an index into an array.
It's better to use IRQs and not vectors to lookup int.
events by number.
I think I mixed my terminology in the commit. I meant for all
architectures to pass in the number that would appear in vmstat -
i. Can you verify that this is what I did for powerpc and ia64?
powerpc correctly uses irq.
ia64 incorrectly uses vector.
Would you mind changing ia64 to use irq as well?
Index: ia64/ia64/interrupt.c
===================================================================
RCS file: /home/ncvs/src/sys/ia64/ia64/interrupt.c,v
retrieving revision 1.66
diff -r1.66 interrupt.c
343c343
< 0, vector, ia64_intr_mask, ia64_intr_unmask,
ia64_intr_eoi,
---
0, irq, ia64_intr_mask, ia64_intr_unmask,
ia64_intr_eoi,
Does that look right?
Yup. It does. Everything matches that way:
<dmesg>
ohci0: <NEC uPD 9210 USB controller> mem 0x80023000-0x80023fff irq
16 at device 1.0 on pci0
</dmesg>
<devinfo -rv>
ohci0 pnpinfo vendor=0x1033 device=0x0035 subvendor=0x1033
subdevice=0x0035 class=0x0c0310 at slot=1 function=0
Interrupt request lines:
16
</devinfo -rv>
<vmstat -ia>
#015 0 0
ohci0 0 0
ohci1 0 0
ehci0 0 0
#019 0 0
</stat -ia>
Looking up interrupt events for ohci0 would then also use 16
and not 48 (i.e. the vector number).
FYI,
--
Marcel Moolenaar
[EMAIL PROTECTED]
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/cvs-all
To unsubscribe, send any mail to "[EMAIL PROTECTED]"