Re: [PATCHv2 1/7] mm: Add support for unaccepted memory

From: Kirill A. Shutemov
Date: Wed Jan 12 2022 - 14:15:52 EST


On Wed, Jan 12, 2022 at 12:31:10PM +0100, David Hildenbrand wrote:
>
> >
> > Looking at stuff like this, I can't help but think that a:
> >
> > #define PageOffline PageUnaccepted
> >
> > and some other renaming would be a fine idea. I get that the Offline
> > bit can be reused, but I'm not sure that the "Offline" *naming* should
> > be reused. What you're doing here is logically distinct from existing
> > offlining.
>
> Yes, or using a new pagetype bit to make the distinction clearer.
> Especially the function names like maybe_set_page_offline() et. Al are
> confusing IMHO. They are all about accepting unaccepted memory ... and
> should express that.

"Unaccepted" is UEFI treminology and I'm not sure we want to expose
core-mm to it. Power/S390/ARM may have a different name for the same
concept. Offline/online is neutral terminology, familiar to MM developers.

What if I change accept->online in function names and document the meaning
properly?

> I assume PageOffline() will be set only on the first sub-page of a
> high-order PageBuddy() page, correct?
>
> Then we'll have to monitor all PageOffline() users such that they can
> actually deal with PageBuddy() pages spanning *multiple* base pages for
> a PageBuddy() page. For now it's clear that if a page is PageOffline(),
> it cannot be PageBuddy() and cannot span more than one base page.

> E.g., fs/proc/kcore.c:read_kcore() assumes that PageOffline() is set on
> individual base pages.

Right, pages that offline from hotplug POV are never on page allocator's
free lists, so it cannot ever step on them.

--
Kirill A. Shutemov