linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/11] Add and use memdesc_flags_t
@ 2025-08-05 17:22 Matthew Wilcox (Oracle)
  2025-08-05 17:22 ` [PATCH 01/11] mm: Introduce memdesc_flags_t Matthew Wilcox (Oracle)
                   ` (11 more replies)
  0 siblings, 12 replies; 29+ messages in thread
From: Matthew Wilcox (Oracle) @ 2025-08-05 17:22 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Matthew Wilcox (Oracle), linux-mm

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



^ permalink raw reply	[flat|nested] 29+ messages in thread

end of thread, other threads:[~2025-08-19 18:03 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-05 17:22 [PATCH 00/11] Add and use memdesc_flags_t Matthew Wilcox (Oracle)
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

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).