Thread (31 messages) 31 messages, 3 authors, 2006-12-29

Re: [patch sungem] improved locking

From: David Miller <davem@davemloft.net>
Date: 2006-11-28 23:43:43

From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date: Wed, 29 Nov 2006 09:57:24 +1100
quoted
This looks mostly fine.

I was thinking about the lockless stuff, and I wonder if there
is a clever way you can get it back down to one PIO on the
GREG_STAT register.

I think you'd need to have the ->poll() clear gp->status, then
do a smp_wb(), right before it re-enables interrupts.

Then in the interrupt handler, you need to find a way to safely
OR-in any unset bits in gp->status in a race-free manner.
Having it atomic might work at a slightly smaller cost than a lock,
though atomics don't have strong ordering requirements so you'd still
have to be a bit careful.
At least in theory the atomic + any necessary memory barriers
would be cheaper than the extra PIO read we need otherwise.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help