Re: [PATCH v2 0/2] fix MADV_COLLAPSE issue if THP settings are disabled
From: Usama Arif
Date: Fri Jun 13 2025 - 10:23:35 EST
On 05/06/2025 09:00, Baolin Wang wrote:
> As we discussed in the previous thread [1], the MADV_COLLAPSE will ignore
> the system-wide anon/shmem THP sysfs settings, which means that even though
> we have disabled the anon/shmem THP configuration, MADV_COLLAPSE will still
> attempt to collapse into a anon/shmem THP. This violates the rule we have
> agreed upon: never means never. This patch set will address this issue.
Hi Baolin,
I know never means never, but I also thought that the per-size toggles had
priority over the system ones. This was discussed in [1] as well.
My understanding with these patches is that if we have:
[root@vm4 vmuser]# cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
[root@vm4 vmuser]# cat /sys/kernel/mm/transparent_hugepage/hugepages-2048kB/enabled
always inherit [madvise] never
Than without these patches we get a hugepage when we do MADV_HUGEPAGE, but with
these we won't get a hugepage anymore eventhough hugepages-2048kB/enabled is set
to madvise?
I know this isn't ABI, but this would break existing expectations.
(For e.g. we have certain 64K page size arm machines with global enabled = never and
2M = madvise, and we want 2M hugepages to fault at madvise).
If the whole thing was being implemented from scratch, we should have definitely
done it this way, but this can give a people a nasty surprise when they upgrade
the kernel and suddenly stop getting hugepages.
[1] https://lore.kernel.org/all/97702ff0-fc50-4779-bfa8-83dc42352db1@xxxxxxxxxx/
Thanks,
Usama