Re: [RFC v3 2/4] mm: move PG_slab flag to page_type

From: David Hildenbrand
Date: Wed Feb 08 2023 - 05:14:56 EST


On 08.02.23 10:44, Mike Rapoport wrote:
On Fri, Feb 03, 2023 at 05:04:01PM +0100, David Hildenbrand wrote:
On 30.01.23 06:11, Matthew Wilcox wrote:
On Mon, Jan 30, 2023 at 01:34:59PM +0900, Hyeonggon Yoo wrote:
Seems like quite some changes to page_type to accomodate SLAB, which is
hopefully going away soon(TM). Could we perhaps avoid that?

If it could be done with less changes, I'll try to avoid that.

Let me outline the idea I had for removing PG_slab:

Observe that PG_reserved and PG_slab are mutually exclusive. Also,

I recall that there are SetPageReserved() calls on pages allocated via slab.

I did a quick scan, and it seems that all allocated reserved pages come
from alloc_pages() or vmalloc().

Thanks for checking, good that my memory was wrong :)

BTW, looking at the current usage of SetPageReserved, it seems that some
are bogus/historical and some would justify a different page type if we are
to have 15 bits for PG_kernel.

I remember raising in the past that something like PG_hole might be helpful.

I also recall that most SetPageReserved usage in drivers is to make ioremap happy. PG_ioremappable or smth like that would be better.

So yes, that would even help to cleanup the existing PG_reserved usage.

--
Thanks,

David / dhildenb