cvs commit: src/sys/amd64/amd64 intr_machdep.c src/sys/arm/arm
intr.c src/sys/i386/i386 intr_machdep.c src/sys/ia64/ia64
interrupt.c src/sys/kern kern_cpuset.c kern_intr.c
src/sys/powerpc/powerpc intr_machdep.c src/sys/sparc64/sparc64 ...
Marcel Moolenaar
xcllnt at mac.com
Fri Apr 11 16:35:52 UTC 2008
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
xcllnt at mac.com
More information about the cvs-src
mailing list