Thread (35 messages) 35 messages, 6 authors, 2007-08-11

Re: [PATCH 1/24] make atomic_read() behave consistently on alpha

From: Chris Snook <hidden>
Date: 2007-08-09 19:36:27
Also in: linux-arch, lkml

Segher Boessenkool wrote:
quoted
quoted
The compiler is within its rights to read a 32-bit quantity 16 bits at
at time, even on a 32-bit machine.  I would be glad to help pummel any
compiler writer that pulls such a dirty trick, but the C standard really
does permit this.
Yes, but we don't write code for these compilers.  There are countless 
pieces of kernel code which would break in this condition, and there 
doesn't seem to be any interest in fixing this.
"Other things are broken too".  Great argument :-)
We make plenty of practical assumptions in the kernel, and declare incorrect 
things which violate them, even in cases where there's no commandment from the 
heavens forbidding them.  Since the whole point of this exercise is to prevent 
badness with *optimizing* compilers, it's quite reasonable to declare broken any 
so-called optimizer which violates these trivial assumptions.
quoted
quoted
In short, please retain atomic_set()'s volatility, especially on those
architectures that declared the atomic_t's counter to be volatile.
Like i386 and x86_64?  These used to have volatile in the atomic_t 
declaration.  We removed it, and the sky did not fall.
And this proves what?  Lots of stuff "works" by accident.
If something breaks because of this, it was already broken, but hidden a lot 
better.  I don't see much of a downside to exposing and fixing those bugs.

	-- Chris
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help