On Thu, Jul 16, 2020 at 11:46:56AM +1000, Dave Chinner wrote: > And why should we compromise performance on hundreds of millions of > modern systems to fix an extremely rare race on an extremely rare > platform that maybe only a hundred people world-wide might still > use? I thought that wasn't the argument here. It was that some future compiler might choose to do something absolutely awful that no current compiler does, and that rather than disable the stupid "optimisation", we'd be glad that we'd already stuffed the source code up so that it lay within some tortuous reading of the C spec. The memory model is just too complicated. Look at the recent exchange between myself & Dan Williams. I spent literally _hours_ trying to figure out what rules to follow. https://lore.kernel.org/linux-mm/CAPcyv4jgjoLqsV+aHGJwGXbCSwbTnWLmog5-rxD2i31vZ2rDNQ@xxxxxxxxxxxxxx/ https://lore.kernel.org/linux-mm/CAPcyv4j2+7XiJ9BXQ4mj_XN0N+rCyxch5QkuZ6UsOBsOO1+2Vg@xxxxxxxxxxxxxx/ Neither Dan nor I are exactly "new" to Linux kernel development. As Dave is saying here, having to understand the memory model is too high a bar. Hell, I don't know if what we ended up with for v4 is actually correct. It lokos good to me, but *shrug* https://lore.kernel.org/linux-mm/159009507306.847224.8502634072429766747.stgit@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/