On Wed, Apr 7, 2021 at 9:33 AM Suren Baghdasaryan surenb@google.com wrote:
Trying my hand at backporting the patchsets Peter mentioned proved this to be far from easy with many dependencies. Let me look into Vlastimil's suggestion to backport only 17839856fd58 and it sounds like 5.4 already followed that path.
Well, in many ways 17839856fd58 was the "simple and obvious" fix, and I do think it's easily backportable.
But it *did* cause problems too. Those problems may not be issues on those old kernels, though.
In particular, commit 17839856fd58 caused uffd-wp to stop working right, and it caused some issues with debugging (I forget the exact details, but I think it was strace accessing PROT_NONE or write-only pages or something like that, and COW failed).
But yes, in many ways that commit is a much simpler and more straightforward one (which is why I tried it once - we ended up with the much more subtle and far-reaching fixes after the UFFD issues crept up).
The issues that 17839856fd58 caused may be entire non-events in old kernels. In fact, the uffd writeprotect API was added fairly recently (see commit 63b2d4174c4a that made it into v5.7), so the uffd-wp issue that was triggered probably cannot happen in the old kernels.
The strace issue might not be relevant either, but I forget what the details were. Mikilas should know.
See
https://lore.kernel.org/lkml/alpine.LRH.2.02.2009031328040.6929@file01.intra...
for Mikulas report. I never looked into it in detail, because by then the uffd-wp issue had already come up, so it was juat another nail in the coffin for that simpler approach.
Mikulas, do you remember?
Linus