Why the "volatile" type class should not be used
https://www.kernel.org/doc/Documentation/volatile-considered-harmful.txt
LINUX KERNEL MEMORY BARRIERS
https://www.kernel.org/doc/Documentation/memory-barriers.txt
Memory barriers for TSO architectures
http://lwn.net/Articles/576486/
C11 atomic variables and the kernel
http://lwn.net/SubscriberLink/586838/77c5c01b6361c5b4/