Date: Fri, 11 Apr 2008 09:35:48 -0700 From: Marcel Moolenaar <xcllnt@mac.com> To: Jeff Roberson <jroberson@jroberson.net> Cc: cvs-src@FreeBSD.org, src-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: 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 ... Message-ID: <6A40DB30-85A5-4A79-B744-729AA7F656D9@mac.com> In-Reply-To: <20080410235123.K43186@desktop> References: <200804110326.m3B3QfjL095474@repoman.freebsd.org> <AF694C84-E229-4640-87F6-CB03C44F741C@mac.com> <20080410190028.U43186@desktop> <9B8DD956-E197-4540-A7F3-367B1E277456@mac.com> <20080410235123.K43186@desktop>
next in thread | previous in thread | raw e-mail | index | archive | help
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@mac.com
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6A40DB30-85A5-4A79-B744-729AA7F656D9>