You forgot the v2, please can you resend this with it, or this will get mighty confusing. Thanks! On Thu, Jul 31, 2025 at 01:18:11PM +0100, Usama Arif wrote: > This will allow individual processes to opt-out of THP = "always" > into THP = "madvise", without affecting other workloads on the system. > This has been extensively discussed on the mailing list and has been > summarized very well by David in the first patch which also includes > the links to alternatives, please refer to the first patch commit message > for the motivation for this series. > > Patch 1 adds the PR_THP_DISABLE_EXCEPT_ADVISED flag to implement this, along > with the MMF changes. > Patch 2 is a cleanup patch for tva_flags that will allow the forced collapse > case to be transmitted to vma_thp_disabled (which is done in patch 3). > Patches 4-5 implement the selftests for PR_SET_THP_DISABLE for completely > disabling THPs (old behaviour) and only enabling it at advise > (PR_THP_DISABLE_EXCEPT_ADVISED). > > The patches are tested on top of 4ad831303eca6ae518c3b3d86838a2a04b90ec41 > from mm-new. > > v1 -> v2: https://lore.kernel.org/all/20250725162258.1043176-1-usamaarif642@xxxxxxxxx/ > - Change thp_push_settings to thp_write_settings (David) > - Add tests for all the system policies for the prctl call (David) > - Small fixes and cleanups > > David Hildenbrand (3): > prctl: extend PR_SET_THP_DISABLE to optionally exclude VM_HUGEPAGE > mm/huge_memory: convert "tva_flags" to "enum tva_type" for > thp_vma_allowable_order*() > mm/huge_memory: treat MADV_COLLAPSE as an advise with > PR_THP_DISABLE_EXCEPT_ADVISED > > Usama Arif (2): > selftests: prctl: introduce tests for disabling THPs completely > selftests: prctl: introduce tests for disabling THPs except for > madvise > > Documentation/filesystems/proc.rst | 5 +- > fs/proc/array.c | 2 +- > fs/proc/task_mmu.c | 4 +- > include/linux/huge_mm.h | 60 ++- > include/linux/mm_types.h | 13 +- > include/uapi/linux/prctl.h | 10 + > kernel/sys.c | 59 ++- > mm/huge_memory.c | 11 +- > mm/khugepaged.c | 20 +- > mm/memory.c | 20 +- > mm/shmem.c | 2 +- > tools/testing/selftests/mm/.gitignore | 1 + > tools/testing/selftests/mm/Makefile | 1 + > .../testing/selftests/mm/prctl_thp_disable.c | 358 ++++++++++++++++++ > tools/testing/selftests/mm/thp_settings.c | 9 +- > tools/testing/selftests/mm/thp_settings.h | 1 + > 16 files changed, 505 insertions(+), 71 deletions(-) > create mode 100644 tools/testing/selftests/mm/prctl_thp_disable.c > > -- > 2.47.3 >