Thread (103 messages) 103 messages, 12 authors, 2021-01-18

Re: [PATCH] mm/userfaultfd: fix memory corruption due to writeprotect

From: Will Deacon <will@kernel.org>
Date: 2021-01-12 22:47:17
Also in: lkml, stable

Possibly related (same subject, not in this thread)

On Tue, Jan 12, 2021 at 02:29:51PM -0800, Nadav Amit wrote:
quoted
On Jan 12, 2021, at 1:43 PM, Will Deacon [off-list ref] wrote:

On Tue, Jan 12, 2021 at 12:38:34PM -0800, Nadav Amit wrote:
quoted
quoted
On Jan 12, 2021, at 11:56 AM, Yu Zhao [off-list ref] wrote:
On Tue, Jan 12, 2021 at 11:15:43AM -0800, Nadav Amit wrote:
quoted
I will send an RFC soon for per-table deferred TLB flushes tracking.
The basic idea is to save a generation in the page-struct that tracks
when deferred PTE change took place, and track whenever a TLB flush
completed. In addition, other users - such as mprotect - would use
the tlb_gather interface.

Unfortunately, due to limited space in page-struct this would only
be possible for 64-bit (and my implementation is only for x86-64).
I don't want to discourage you but I don't think this would end up
well. PPC doesn't necessarily follow one-page-struct-per-table rule,
and I've run into problems with this before while trying to do
something similar.
Discourage, discourage. Better now than later.

It will be relatively easy to extend the scheme to be per-VMA instead of
per-table for architectures that prefer it this way. It does require
TLB-generation tracking though, which Andy only implemented for x86, so I
will focus on x86-64 right now.
Can you remind me of what we're missing on arm64 in this area, please? I'm
happy to help get this up and running once you have something I can build
on.
Let me first finish making something that we can use as a basis for a
discussion. I do not waste your time before I have something ready.
Sure thing! Give me a shout when you're ready.

Will
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help