Re: [PATCH 6/8] i386: bitops: Don't mark memory as clobberedunnecessarily

From: Benjamin Herrenschmidt
Date: Tue Jul 24 2007 - 05:53:18 EST


On Mon, 2007-07-23 at 10:55 -0700, Linus Torvalds wrote:
> > The goal is to let gcc generate good, beautiful, optimized code.
>
> No. The point is to let gcc generate *correct* code.
>
> It's either "=m" together with "memory", or it's "+m".

In fact, it's more than that... the bitops that return a value are often
used to have hand-made spinlock semantics. I'm sure we would get funky
bugs if loads or stores leaked out of the locked region. I think a full
"memory" clobber should be kept around for those cases.

(That's also why on ppc, we give them a few more barriers)

Ben.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/