Re: Is gcc thread-unsafe?

From: Zachary Amsden
Date: Thu Oct 25 2007 - 21:15:21 EST


On Thu, 2007-10-25 at 16:57 -0700, Linus Torvalds wrote:
>
> On Fri, 26 Oct 2007, Andi Kleen wrote:
> >
> > The conditional add/sub using carry trick is not generally bogus.
> > But for registers it's a fine optimization.
>
> For registers it's fine. For memory, it's a disaster. It's more than just
> dirty cachelines and introducing race conditions, it's also about
> protection and dirty pages.
>
> So even in user space, to even be correct in the first place, the compiler

It's actually a fair bit worse for us. We have paths where a false
optimization like this would hyperspace the machine. In fact, this
frightens me so much I've just gone off to investigate whether gcc has
gone and done this to any of our code.

Clearly the right solution is to introduce threads and write protected
memory into gcc so that the developers are either motivated to ensure
they work or self-destruct.

Zach

-
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/