On Mon, Jan 25, 2021 at 02:18:37PM -0800, Yu, Yu-cheng wrote: > For example, when a thread reads a W=1, D=0 PTE and before changing it to > W=0,D=0, another thread could have written to the page and the PTE is W=1, > D=1 now. When try_cmpxchg() detects the difference, old_pte is read again. None of that is mentioned in the comment above it and if anything, *that* is what should be explained there - not some guarantee about some processors which doesn't even apply here. Also, add the fact that try_cmpxchg() will update old_pte with any modified bits - D=1 for example - when it fails. As Peter just explained to me on IRC. Thx. -- Regards/Gruss, Boris. https://people.kernel.org/tglx/notes-about-netiquette