Thread (11 messages) flat view 11 messages, 4 authors, 2017-06-05

Re: [PATCH] mm: make PR_SET_THP_DISABLE immediately active

From: Mike Rapoprt <hidden>
Date: 2017-06-03 10:40:33
Also in: linux-mm, lkml


On June 2, 2017 10:50:59 PM GMT+03:00, Andrew Morton [off-list ref] wrote:
On Fri,  2 Jun 2017 18:03:22 +0300 "Mike Rapoport"
[off-list ref] wrote:
quoted
PR_SET_THP_DISABLE has a rather subtle semantic. It doesn't affect
any
quoted
existing mapping because it only updated mm->def_flags which is a
template
quoted
for new mappings. The mappings created after
prctl(PR_SET_THP_DISABLE) have
quoted
VM_NOHUGEPAGE flag set.  This can be quite surprising for all those
applications which do not do prctl(); fork() & exec() and want to
control
quoted
their own THP behavior.

Another usecase when the immediate semantic of the prctl might be
useful is
quoted
a combination of pre- and post-copy migration of containers with
CRIU.  In
quoted
this case CRIU populates a part of a memory region with data that was
saved
quoted
during the pre-copy stage. Afterwards, the region is registered with
userfaultfd and CRIU expects to get page faults for the parts of the
region
quoted
that were not yet populated. However, khugepaged collapses the pages
and
quoted
the expected page faults do not occur.

In more general case, the prctl(PR_SET_THP_DISABLE) could be used as
a
quoted
temporary mechanism for enabling/disabling THP process wide.

Implementation wise, a new MMF_DISABLE_THP flag is added. This flag
is
quoted
tested when decision whether to use huge pages is taken either during
page
quoted
fault of at the time of THP collapse.

It should be noted, that the new implementation makes
PR_SET_THP_DISABLE
quoted
master override to any per-VMA setting, which was not the case
previously.
quoted
Fixes: a0715cc22601 ("mm, thp: add VM_INIT_DEF_MASK and
PRCTL_THP_DISABLE")

"Fixes" is a bit strong.  I'd say "alters".  And significantly altering
the runtime behaviour of a three-year-old interface is rather a worry,
no?
Well, there are people that consider current behavior as bug :)
One can argue we alter the implementation​details and users should not rely on that...
Perhaps we should be adding new prctl modes to select this new
behaviour and leave the existing PR_SET_THP_DISABLE behaviour as-is?


-- 
Sincerely yours,
Mike.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help