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 affectanyquoted
existing mapping because it only updated mm->def_flags which is atemplatequoted
for new mappings. The mappings created afterprctl(PR_SET_THP_DISABLE) havequoted
VM_NOHUGEPAGE flag set. This can be quite surprising for all those applications which do not do prctl(); fork() & exec() and want tocontrolquoted
their own THP behavior. Another usecase when the immediate semantic of the prctl might beuseful isquoted
a combination of pre- and post-copy migration of containers withCRIU. Inquoted
this case CRIU populates a part of a memory region with data that wassavedquoted
during the pre-copy stage. Afterwards, the region is registered with userfaultfd and CRIU expects to get page faults for the parts of theregionquoted
that were not yet populated. However, khugepaged collapses the pagesandquoted
the expected page faults do not occur. In more general case, the prctl(PR_SET_THP_DISABLE) could be used asaquoted
temporary mechanism for enabling/disabling THP process wide. Implementation wise, a new MMF_DISABLE_THP flag is added. This flagisquoted
tested when decision whether to use huge pages is taken either duringpagequoted
fault of at the time of THP collapse. It should be noted, that the new implementation makesPR_SET_THP_DISABLEquoted
master override to any per-VMA setting, which was not the casepreviously.quoted
Fixes: a0715cc22601 ("mm, thp: add VM_INIT_DEF_MASK andPRCTL_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 implementationdetails 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>