Re: [PATCH RFC 04/29] mm/page_alloc: allow for making page types sticky until freed

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 18.06.25 20:43, Zi Yan wrote:
On 18 Jun 2025, at 13:39, David Hildenbrand wrote:

Let's allow for not clearing a page type before freeing a page to the
buddy.

We'll focus on having a type set on the first page of a larger
allocation only.

With this change, we can reliably identify typed folios even though
they might be in the process of getting freed, which will come in handy
in migration code (at least in the transition phase).

Signed-off-by: David Hildenbrand <david@xxxxxxxxxx>
---
  mm/page_alloc.c | 3 +++
  1 file changed, 3 insertions(+)

diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 858bc17653af9..44e56d31cfeb1 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -1380,6 +1380,9 @@ __always_inline bool free_pages_prepare(struct page *page,
  			mod_mthp_stat(order, MTHP_STAT_NR_ANON, -1);
  		page->mapping = NULL;
  	}
+	if (unlikely(page_has_type(page)))
+		page->page_type = UINT_MAX;
+
  	if (is_check_pages_enabled()) {
  		if (free_page_is_bad(page))
  			bad++;

Should we be pedantic to only do this for PageOffline and PageZsmalloc
and warn for the rest page types?

I think we should just allow any page types. Limiting it to specific types sounds like some use-after-free check that probably shouldn't be handled that way.

--
Cheers,

David / dhildenb





[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [NTFS 3]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [NTFS 3]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux