From: "Matthew Wilcox (Oracle)" <willy@infradead.org>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: "Matthew Wilcox (Oracle)" <willy@infradead.org>, linux-mm@kvack.org
Subject: [PATCH 00/11] Add and use memdesc_flags_t
Date: Tue, 5 Aug 2025 18:22:50 +0100 [thread overview]
Message-ID: <20250805172307.1302730-1-willy@infradead.org> (raw)
At some point struct page will be separated from struct slab and struct
folio. This is a step towards that by introducing a type for the 'flags'
word of all three structures. This gives us a certain amount of type
safety by establishing that some of these unsigned longs are different
from other unsigned longs in that they contain things like node ID,
section number and zone number in the upper bits. That lets us have
functions that can be easily called by anyone who has a slab, folio or
page (but not easily by anyone else) to get the node or zone.
There's going to be some unusual merge problems with this as some odd
bits of the kernel decide they want to print out the flags value or
something similar by writing page->flags and now they'll need to write
page->flags.f instead. That's most of the churn here. Maybe we should
be removing these things from the debug output?
The build bots have had since Friday to chew on this as I pushed it
to git://git.infradead.org/users/willy/pagecache.git folio-page-split
Matthew Wilcox (Oracle) (11):
mm: Introduce memdesc_flags_t
mm: Convert page_to_section() to memdesc_section()
mm: Introduce memdesc_nid()
mm: Introduce memdesc_zonenum()
slab: Use memdesc_flags_t
slab: Use memdesc_nid()
mm: Introduce memdesc_is_zone_device()
mm: Reimplement folio_is_device_private()
mm: Reimplement folio_is_device_coherent()
mm: Reimplement folio_is_fsdax()
mm: Add folio_is_pci_p2pdma()
arch/x86/mm/pat/memtype.c | 6 ++--
fs/fuse/dev.c | 2 +-
fs/gfs2/glops.c | 2 +-
fs/jffs2/file.c | 4 +--
fs/nilfs2/page.c | 2 +-
fs/proc/page.c | 4 +--
fs/ubifs/file.c | 6 ++--
include/asm-generic/memory_model.h | 2 +-
include/linux/memremap.h | 39 +++++++++++++---------
include/linux/mm.h | 53 ++++++++++++++++--------------
include/linux/mm_inline.h | 12 +++----
include/linux/mm_types.h | 8 +++--
include/linux/mmzone.h | 30 +++++++++++------
include/linux/page-flags.h | 40 +++++++++++-----------
include/linux/pgalloc_tag.h | 7 ++--
include/trace/events/page_ref.h | 4 +--
mm/filemap.c | 8 ++---
mm/gup.c | 2 +-
mm/huge_memory.c | 4 +--
mm/memory-failure.c | 12 +++----
mm/mmzone.c | 4 +--
mm/page_alloc.c | 12 +++----
mm/slab.h | 6 ++--
mm/slub.c | 18 +++++-----
mm/sparse.c | 6 ++--
mm/swap.c | 8 ++---
mm/vmscan.c | 18 +++++-----
mm/workingset.c | 2 +-
28 files changed, 174 insertions(+), 147 deletions(-)
--
2.47.2
next reply other threads:[~2025-08-05 17:23 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-05 17:22 Matthew Wilcox (Oracle) [this message]
2025-08-05 17:22 ` [PATCH 01/11] mm: Introduce memdesc_flags_t Matthew Wilcox (Oracle)
2025-08-06 18:24 ` Zi Yan
2025-08-19 17:49 ` Kairui Song
2025-08-19 17:58 ` Matthew Wilcox
2025-08-19 18:03 ` Kairui Song
2025-08-05 17:22 ` [PATCH 02/11] mm: Convert page_to_section() to memdesc_section() Matthew Wilcox (Oracle)
2025-08-06 18:31 ` Zi Yan
2025-08-05 17:22 ` [PATCH 03/11] mm: Introduce memdesc_nid() Matthew Wilcox (Oracle)
2025-08-06 18:47 ` Zi Yan
2025-08-06 19:04 ` Matthew Wilcox
2025-08-06 19:07 ` Zi Yan
2025-08-05 17:22 ` [PATCH 04/11] mm: Introduce memdesc_zonenum() Matthew Wilcox (Oracle)
2025-08-06 18:57 ` Zi Yan
2025-08-05 17:22 ` [PATCH 05/11] slab: Use memdesc_flags_t Matthew Wilcox (Oracle)
2025-08-06 19:16 ` Zi Yan
2025-08-05 17:22 ` [PATCH 06/11] slab: Use memdesc_nid() Matthew Wilcox (Oracle)
2025-08-06 19:17 ` Zi Yan
2025-08-05 17:22 ` [PATCH 07/11] mm: Introduce memdesc_is_zone_device() Matthew Wilcox (Oracle)
2025-08-06 19:22 ` Zi Yan
2025-08-05 17:22 ` [PATCH 08/11] mm: Reimplement folio_is_device_private() Matthew Wilcox (Oracle)
2025-08-06 19:25 ` Zi Yan
2025-08-05 17:22 ` [PATCH 09/11] mm: Reimplement folio_is_device_coherent() Matthew Wilcox (Oracle)
2025-08-06 19:27 ` Zi Yan
2025-08-05 17:23 ` [PATCH 10/11] mm: Reimplement folio_is_fsdax() Matthew Wilcox (Oracle)
2025-08-06 19:27 ` Zi Yan
2025-08-05 17:23 ` [PATCH 11/11] mm: Add folio_is_pci_p2pdma() Matthew Wilcox (Oracle)
2025-08-05 21:40 ` [PATCH 00/11] Add and use memdesc_flags_t Shakeel Butt
2025-08-06 12:55 ` Matthew Wilcox
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250805172307.1302730-1-willy@infradead.org \
--to=willy@infradead.org \
--cc=akpm@linux-foundation.org \
--cc=linux-mm@kvack.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).