Re: [PATCH] mm: mlockall error for flag MCL_ONFAULT

From: Daniel Jordan
Date: Fri May 24 2019 - 17:46:32 EST


[ Adding linux-api and some of the people who were involved in the
MCL_ONFAULT/mlock2/etc discussions. Author of the Fixes patch appears to
have moved on. ]

On Wed, May 22, 2019 at 11:23:37AM +0000, Potyra, Stefan wrote:
> If mlockall() is called with only MCL_ONFAULT as flag,
> it removes any previously applied lockings and does
> nothing else.

The change looks reasonable. Hard to imagine any application relies on it, and
they really shouldn't be if they are. Debian codesearch turned up only a few
cases where stress-ng was doing this for unknown reasons[1] and this change
isn't gonna break those. In this case I think changing the syscall's behavior
is justified.

> This behavior is counter-intuitive and doesn't match the
> Linux man page.

I'd quote it for the changelog:

For mlockall():

EINVAL Unknown flags were specified or MCL_ONFAULT was specified withâ
out either MCL_FUTURE or MCL_CURRENT.

With that you can add

Reviewed-by: Daniel Jordan <daniel.m.jordan@xxxxxxxxxx>

[1] https://sources.debian.org/src/stress-ng/0.09.50-1/stress-mlock.c/?hl=203#L203