[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <aOaZ2o3l7ufX-9Ly@gourry-fedora-PF4VCD3F>
Date: Wed, 8 Oct 2025 13:05:30 -0400
From: Gregory Price <gourry@...rry.net>
To: Frank van der Linden <fvdl@...gle.com>
Cc: Michal Hocko <mhocko@...e.com>, David Hildenbrand <david@...hat.com>,
linux-mm@...ck.org, corbet@....net, muchun.song@...ux.dev,
osalvador@...e.de, akpm@...ux-foundation.org, hannes@...xchg.org,
laoar.shao@...il.com, brauner@...nel.org, mclapinski@...gle.com,
joel.granados@...nel.org, linux-doc@...r.kernel.org,
linux-kernel@...r.kernel.org, Mel Gorman <mgorman@...e.de>,
Alexandru Moise <00moses.alexander00@...il.com>,
Mike Kravetz <mike.kravetz@...cle.com>,
David Rientjes <rientjes@...gle.com>
Subject: Re: [PATCH] Revert "mm, hugetlb: remove hugepages_treat_as_movable
sysctl"
On Wed, Oct 08, 2025 at 09:08:01AM -0700, Frank van der Linden wrote:
> On Wed, Oct 8, 2025 at 7:59 AM Michal Hocko <mhocko@...e.com> wrote:
> >
> > Maybe what we really want is to have a configurable zone rather than a
> > very specific consumer of it instead. What do I mean by that? We clearly
> > have physically (DMA, DMA32) and usability (NORMAL, MOVABLE) constrained
> > zones. So rather than having a MOVABLE zone we can have a single zone
> > $FOO_NAME zone with configurable attributes - like allocation
> > constrains (kernel, user, movable, etc). Now that we can overlap zones
...
>
> I agree that having mutiple zone properties is probably the way to go.
>
Ah, I should also mention that I've been kicking around the idea of a
ZONE_DEVICE allocator - but this blows up pretty quickly into
maintaining an entirely separate page allocator for non-general-use
memory, so i didn't want to start off with that until later.
tl;dr: pgmap->alloc_folio(gfp, order)
Then allow driver managed memory to "online" this capacity via
ZONE_DEVICE and integrate *specific* areas of the kernel to use it -
rather than everything. The device's driver is then responsible for
implementing alloc_folio(gfp, order), and a zone_device_alloc() is
responsible for hitting all the relevant devices for a compatible
allocation.
I alluded to this in the hotness/compression discussions - where there
is some compressed memory you want to draw hard boundaries around how
it is accessed/mapped, but want it available as a demotion source.
https://lore.kernel.org/linux-mm/aNzWwz5OYLOjwjLv@gourry-fedora-PF4VCD3F/
Not sure if i'm just overcomplicating the discussion here, but if we're
talking about new ZONEs then maybe it's worth considering something like
this as well.
~Gregory
Powered by blists - more mailing lists