Performance differences with IRQ_ALL_CPUS
Subodh Nijsure
sunijsur at cisco.com
Wed Apr 22 08:01:53 EST 2009
> From: Kumar Gala
> Sent: Tuesday, April 21, 2009 1:02 PM
>
>
> On Apr 21, 2009, at 10:56 AM, Subodh Nijsure wrote:
>
> > Hi,
> >
> >
> > I have board with MPC8572E (dual core PPC). I have one
> board running
> > kernel
> > with IRQ_ALL_CPUS set to Y and another with that option
> turned off.
> > Kernel
> > version #2.6.26
> >
> >
> > With IRQ_ALL_CPUS turned off
> > ( Here interrupts all go to CPU0 )
> >
> > hdparm -tT /dev/hda
> > /dev/hda:
> > Timing cached reads: 3048 MB in 2.00 seconds = 1523.79 MB/sec
> > Timing buffered disk reads: 10 MB in 3.07 seconds = 3.25 MB/sec
> >
> > cat /proc/interrupts
> > CPU0 CPU1
> > 18: 1394100 0 OpenPIC Edge ide0
> >
> > With IRQ_ALL_CPUS turned on I see
> > (Here interrupts go to CPU0 and CPU1 )
> >
> > hdparm -tT /dev/hda
> >
> > /dev/hda:
> > Timing cached reads: 1076 MB in 2.00 seconds = 538.01 MB/sec
> > Timing buffered disk reads: 10 MB in 3.08 seconds = 3.25 MB/sec
> >
> > cat /proc/interrupts
> > CPU0 CPU1
> > 18: 44951 54765 OpenPIC Edge ide0
> >
> > I "expected" that with IRQ_ALL_CPUS -- interrupt sharing I would be
> > able to get higher througput but I see things otherway around.
> >
> > Would someone care to enlighten me as to why when I set
> IRQ_ALL_CPUS
> > disk I/O performance goes down so much? Under what circumstances
> > should one then turn on IRQ_ALL_CPUS option on PPC platform?
> >
> > Regards,
> > /Subodh
>
> This is probably because you are getting ill defined behavior
> on 8572. The 8572 (and any FSL MPIC) doesn't actually
> support having the PIC distribute interrupts to the different
> CPUs. Its technically "illegal" to set more than one
> destination processor.
>
> If you want to try and distribute interrupts than I suggest
> looking at irqbalance.
>
Kumar, thanks for the info.
Okay I will research irqbalance (from http://irqbalance.org/?) and see how
that goes.
If I want to lock say ethernet interrupts to (core0) CPU0 and Ide interrupts
to (core1) CPU1 is there a way to fix that using device-tree specification?
I will look through the MPC8572 programmer's manual and see if there is such
a thing in processor itself.
/Subodh
More information about the Linuxppc-dev
mailing list