Re: [PATCH] Revert "mm, hugetlb: remove hugepages_treat_as_movable sysctl"
From: David Hildenbrand
Date: Fri Oct 10 2025 - 03:41:21 EST
On 09.10.25 23:31, Gregory Price wrote:
On Thu, Oct 09, 2025 at 08:51:54PM +0200, David Hildenbrand wrote:
On 09.10.25 17:29, Gregory Price wrote:
Or would it be sufficient to selectively enable (explicit opt-in) some user
pages to end up on ZONE_MOVABLE? IOW, change the semantics of the zone by an
admin.
Like, allowing longterm pinning on ZONE_MOVABLE.
Sure, it would degrade memory hotunplug (until the relevant applications are
shut down) and probably some other things.
Further, I am not so sure about the value of having ZONE_MOVABLE sprinkled
with small unmovable allocations (same concern regarding any such zone that
allows for unmovable things). Kind of against the whole concept.
But I mean, if the admin decides to do that (opt in), so he is to blame.
For what it's worth, this patch (or the new one i posted as an RFC), I
was able to allocate gigantic pages and migrate them back and forth
between nodes even after they were allocated for KVM instances.
I was surprised this did not cause pinning.
KVM does not end up longterm-pinning pages (what we care about regarding
migration) when mapping stuff into the guest MMU, so KVM in general is
not a problem.
The problem shows up once you would try to use something like vfio,
liburing fixed buffers etc, where we will longterm-pin pages.
This was all while running the QEMU machine actively eating ~2GB of
memory. So this seems... acceptable? My primary use case was VM
hugepages, but it doesn't even seem like these have been pinned.
I think the confidential-compute / guest_memfd path would have an
issue, because those are pinned and/or entirely unmapped from the
host, but that just seems like a known quantity and a reason to leave
this off by default (make them read the docs :]).
guest_memfd allocates folios without GFP_MOVABLE, because they are ...
unmovable. So they would never end up on ZONE_MOVABLE.
There are prototypes / ideas to support migration of guest_memfd pages,
so it would be solvable. At least for some scenarios.
Seems like this is pretty stable tbh. Obviously if you hack off the
node0 hugepages migration fails - but I feel like you're signing up for
that when you turn the bit on.
Right, just needs to be documented thoroughly IMHO.
--
Cheers
David / dhildenb