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

From: Michal Hocko
Date: Mon May 27 2019 - 03:07:32 EST


On Fri 24-05-19 17:43:04, Daniel Jordan wrote:
> [ 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

Well spotted and the fix looks reasonable as well. Quoting the man page
seems useful as well.

Acked-by: Michal Hocko <mhocko@xxxxxxxx>

Thanks!
--
Michal Hocko
SUSE Labs