On Fri, 8 Jun 2018 14:56:52 -0400 Jason Baron <jbaron@xxxxxxxxxx> wrote: > In order to free memory that is marked MLOCK_ONFAULT, the memory region > needs to be first unlocked, before calling MADV_DONTNEED. And if the region > is to be reused as MLOCK_ONFAULT, we require another call to mlock2() with > the MLOCK_ONFAULT flag. > > Let's simplify freeing memory that is set MLOCK_ONFAULT, by allowing > MADV_DONTNEED to work directly for memory that is set MLOCK_ONFAULT. The > locked memory limits, tracked by mm->locked_vm do not need to be adjusted > in this case, since they were charged to the entire region when > MLOCK_ONFAULT was initially set. Seems useful. Is a manpage update planned? Various updates to tools/testing/selftests/vm/* seem appropriate. > Further, I don't think allowing MADV_FREE for MLOCK_ONFAULT regions makes > sense, since the point of MLOCK_ONFAULT is for userspace to know when pages > are locked in memory and thus to know when page faults will occur. This sounds non-backward-compatible?