Alan Cox <[EMAIL PROTECTED]> writes: > > You can stop the compiler but not the CPU - and some processors will > certainly speculatively load across conditionals, reorder writes etc
The difference is that the CPU knows how to cancel most[1] side effects of these speculative accesses (e.g. by not issuing exceptions[2] etc.). The compiler doesn't normally (except on some architectures with special support like IA64; but I'm not sure gcc supports it there) [1] In some it can't and we've had problems with that in the past. e.g. in a few cases speculative reads can be a problem. But we generally fix or workaround those cases in the code. [2] Modulo hardware bugs -- see the hall of shame in x86_64 fault.c -Andi - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/