Thread (12 messages) 12 messages, 3 authors, 2006-12-08

Re: Worst case performance of up()

From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date: 2006-12-02 20:53:05

On Sat, 2006-12-02 at 11:54 +0000, Adrian Cox wrote:
On Sat, 2006-12-02 at 22:15 +1100, Benjamin Herrenschmidt wrote:
quoted
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.
quoted
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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help