On Tue, Sep 14, 2021 at 08:04:55PM +0200, Peter Zijlstra wrote: > On Tue, Sep 14, 2021 at 09:29:00AM -0700, Peter Oskolkov wrote: > > In the version of the patchset that I'm preparing to send I've decided > > to punt on the issue and just ask the userspace to deal with locking > > the memory as it sees fit: mlock() is available and as far as I can > > Sadly mlock() does not imply no faults. Someone had a too literal > reading of the POSIX-RT spec (of which mlock is part) and figured that > all that was required was to keep the page in memory, not avoid faults. > > Linux has had this bahviour for ages, PREEMPT_RT has tried to change > this, but so far to no avail. At some point sys_mpin() was proposed to > meet the original POSIX-RT intent, but afaict that never actually > happened. > > In short, mlock() does not avoid minor faults, or even migration faults, > which can take a fair while to resolve. Also, even if it did, that would still not be acceptible because userspace could fail to call mlock() at which point mis-behaving userspace can deadlock the kernel, which is a no-no.