Memory ordering issues are, as Linus Torvalds recently
observed, “the rocket science of CS“.  Understanding
memory ordering is increasingly necessary to write scalable code, so kernel
developers often find themselves having to become rocket scientists.  The
subtleties associated with control dependencies turn out to be an
especially tricky sort of rocket.  A recent discussion about how to force
control dependencies to be observed shows the sorts of difficulties that
arise in this area.
Source: LWN.net – [$] Protecting control dependencies with volatile_if()