tech-kern archive

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

Re: RFC: IRQ affinity (aka interrupt routing)



On Thu, Aug 21, 2014 at 07:35:21PM +0900, Kengo NAKAHARA wrote:
> Hi,
> 
> (2014/08/21 17:05), Manuel Bouyer wrote:
> >On a x86 server here:
> >interrupt                                     total     rate
> >TLB shootdown                             788900019      295
> >cpu0 timer                                265870470       99
> >ioapic0 pin 9                                     0        0
> >ioapic0 pin 16                           1491906220      557
> >ioapic1 pin 14                            153885893       57
> >ioapic0 pin 17                                 2731        0
> >ioapic3 pin 0                                    13        0
> >ioapic3 pin 1                                    14        0
> >ioapic0 pin 21                                  789        0
> >ioapic0 pin 20                             15285596        5
> >ioapic0 pin 14                                    1        0
> >ioapic0 pin 4                                     0        0
> >ioapic0 pin 3                                   353        0
> >Total                                    2715852099     1015
> >
> >Notice we have both 'ioapic0 pin 14' and 'ioapic1 pin 14',
> >what number would be used for intrctl in this case ?
> 
> Currently intrctl use "14" for both 'ioapic0' and 'ioapic1', this is
> a bug...
> I fix it as intrctl use "14" for 'ioapic0' on the other hand "38" for
> 'ioapic1'. "38" for 'ioapic1' is defined following
>     14 (pin number) + 24 * 1 (offset for secondary ioapic)
>    # in the case of 'ioapic3 pin 1', 1 + 24 * 3 = 73 is used by intrctl
> An ioapic has 24 pins, so I think adding 24 can avoid duplication. However
> it may be not so good. I consider a little more about this implementation.

yes, please. Using this IRQ number is not straitforward and error-prone.
Using the same values as vmstat -i would make it much easier.

> 
> By the way, I haven't seen ioapic*3*. Could you tell me your machine's
> model number?

It's a DELL poweredge 2950:
NetBSD 6.0_STABLE (SWING) #1: Thu Jan 10 13:23:17 MET 2013
        
bouyer%disco.soc.lip6.fr@localhost:/home/bouyer/tmp/i386/obj/home/bouyer/src-6/src/sys/arch/i386/compile/SWING
total memory = 3327 MB
avail memory = 3265 MB
timecounter: Timecounters tick every 10.000 msec
timecounter: Timecounter "i8254" frequency 1193182 Hz quality 100
Dell Inc. PowerEdge 2950
mainbus0 (root)
cpu0 at mainbus0 apid 0: Intel(R) Xeon(R) CPU            5140  @ 2.33GHz, id 
0x6f6
cpu1 at mainbus0 apid 6: Intel(R) Xeon(R) CPU            5140  @ 2.33GHz, id 
0x6f6
cpu2 at mainbus0 apid 1: Intel(R) Xeon(R) CPU            5140  @ 2.33GHz, id 
0x6f6
cpu3 at mainbus0 apid 7: Intel(R) Xeon(R) CPU            5140  @ 2.33GHz, id 
0x6f6
ioapic0 at mainbus0 apid 8: pa 0xfec00000, version 20, 24 pins
ioapic1 at mainbus0 apid 9: pa 0xfec81000, version 20, 24 pins
ioapic2 at mainbus0 apid 10: pa 0xfec84000, version 20, 24 pins
ioapic3 at mainbus0 apid 11: pa 0xfec84800, version 20, 24 pins

-- 
Manuel Bouyer <bouyer%antioche.eu.org@localhost>
     NetBSD: 26 ans d'experience feront toujours la difference
--


Home | Main Index | Thread Index | Old Index