[PATCH] Fix interrupt distribution in ppc970

Mohan Kumar M mohan at in.ibm.com
Mon Dec 18 21:57:06 EST 2006


On Mon, Dec 18, 2006 at 03:37:36PM +1100, Paul Mackerras wrote:
> Mohan Kumar M writes:
> 
> > To overcome this problem, I have created the patch, which
> > checks for the condition if the machine is ppc970 based and maxcpus
> > kernel parameter is specified. If the condition is met, the default
> > distribution server is assigned to be current boot cpu instead of
> > assigning from the gserver#s property.
> 
> It feels hacky to be basing this sort of thing on the PVR.  I would
> like to understand the real problem better.  Is it that we are
> sometimes setting default_distrib_server to point to a CPU which is
> not running?  If so, why and how?

At the time of kexec/kdump shutdown sequence all secondary processors
are removed from the Global Interrupt Queue by calling the corresponding
rtas-set-indicator call. So even though default_distrib_server is 0xff
PIC should distribute the interrupts only to the processors available in
GIQ (please correct me if I am wrong), but its not happening in our
JS20 box. Our JS20 firmware version is FW04310120 dated 07/26/04.

> Is this something that is specific
> to the firmware on IBM 970-based blade systems?  Is there in fact a
> firmware bug that this works around?

Looks like a firmware bug, since I am not able to reproduce this problem
on a JS21 box with the firmware version MB240_470 dated 03/23/2006. I am
planning to upgrade JS20 with latest firmware and test with maxcpus=1

> Why don't we see it on non-970
> based systems?

I have seen secondary thread related interrupt distribution problems on
POWER5 boxes and I fixed it sometime back. Since POWER4 does not have
SMT there is no interrupt distribution problem.

> 
> Paul.



More information about the Linuxppc-dev mailing list