Thread (15 messages) flat view 15 messages, 4 authors, 2007-08-24

Re: [patch 1/2] powerpc: rmb fix

From: Nick Piggin <hidden>
Date: 2007-08-22 04:05:11

On Wed, Aug 22, 2007 at 05:33:16AM +0200, Segher Boessenkool wrote:
quoted
quoted
The I/O accessor functions enforce the necessary ordering
already I believe.
Hmm, I never followed those discussions last year about IO ordering, 
and
I can't see where (if) it was documented anywhere :(
The comments in system.h weren't updated with the last fix, I think.
quoted
It appears that legacy code is handled by defining the old IO 
accessors to
be completely ordered, and introducing new __raw_ variants that are not
(OTOH, it seems like other architectures are implementing __raw prefix 
as
inorder unless there is a _relaxed postfix).
__raw_XX() is for platform code only, which can do the needed
barriers without having to use the heavy hammer like everything
else unfortunately does.

npiggin@nick:~/usr/src/linux-2.6/drivers> egrep '__raw_(write|read)' -r * | wc -l
685

 
quoted
Drivers are definitely using these __raw_ accessors, and from a quick
look, they do appear to be hoping that *mb() is going to order access 
for
them.
Which drivers?
There are maybe a dozen that use the raw accessors, and use non-smp_
memory barriers. I just looked at drivers/video/tgafb.c, which
indeed appears to intermix them.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help