Worst case performance of up()

Benjamin Herrenschmidt benh at kernel.crashing.org
Sun Dec 3 07:52:53 EST 2006


On Sat, 2006-12-02 at 11:54 +0000, Adrian Cox wrote:
> On Sat, 2006-12-02 at 22:15 +1100, Benjamin Herrenschmidt wrote:
> > I think we are hitting a livelock due to both CPUs trying to perform an
> > atomic operation on the same cache line (or same variable even).
> 
> I agree.
> 
> > Can you remind me what CPU this on precisely ? I know that for some
> > CPUs like 970's, Apple code has some weirdo workarounds around atomic
> > ops involving forcing a mispredict when the stwcx. fails ... but if both
> > CPUs are following the exact same pattern, I can't see another way out
> > but an interrupt, unless something in the bus protocol can prevent such
> > livelocks...
> 
> It's a pair of 7448s in MPX bus mode, with a Tsi109 host bridge.

At this point, we might have good use of Freescale help... there might
be something we can do in the construct of the atomic ops to avoid
that...

Ben.





More information about the Linuxppc-dev mailing list