linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/22] Prepare slab for memdescs
@ 2025-08-29 15:47 Matthew Wilcox (Oracle)
  2025-08-29 15:47 ` [PATCH 01/22] slab: Remove unnecessary test from alloc_debug_processing() Matthew Wilcox (Oracle)
                   ` (22 more replies)
  0 siblings, 23 replies; 32+ messages in thread
From: Matthew Wilcox (Oracle) @ 2025-08-29 15:47 UTC (permalink / raw)
  To: Vlastimil Babka, Andrew Morton
  Cc: Matthew Wilcox (Oracle), Christoph Lameter, David Rientjes,
	Roman Gushchin, Harry Yoo, linux-mm

When we separate struct folio, struct page and struct slab from each
other, converting to folios then to slabs will be nonsense.  It made
sense under the 'folio is just a head page' interpretation, but with
full separation, page_folio() will return NULL for a page which belongs
to a slab.

This patch series removes almost all mentions of folio from slab.
There are a few folio_test_slab() invocations left around the tree that
I haven't decided how to handle yet.  We're not yet quite at the point
of separately allocating struct slab, but that's what I'll be working
on next.

Based on next-20250829.  It has dependencies on both the memdesc_flags_t
conversion and the sheaves work.  Both should be trivial to resolve,
but it may be a little awkward to shepherd into Linus' tree.

Matthew Wilcox (Oracle) (22):
  slab: Remove unnecessary test from alloc_debug_processing()
  slab: Remove unnecessary test from alloc_single_from_partial()
  slab: Remove dead code in check_slab()
  slab: Remove dead code in free_consistency_checks()
  mm: Constify compound_order() and page_size()
  slab: Reimplement page_slab()
  slab: Remove folio references from __ksize()
  slab: Remove folio references in memcg_slab_post_charge()
  slab: Remove folio references in slab alloc/free
  slab: Remove folio references from ___kmalloc_large_node()
  slab: Remove folio references from free_large_kmalloc()
  slab: Remove folio references from kvfree_rcu_cb()
  slab: Remove folio references from kvfree()
  slab: Remove folio references from __do_krealloc()
  slab: Remove folio references from build_detached_freelist()
  slab: Remove dead code from free_large_kmalloc()
  slab: Remove folio references from kfree_rcu_sheaf()
  usercopy: Remove folio references from check_heap_object()
  memcg: Convert mem_cgroup_from_obj_folio() to
    mem_cgroup_from_obj_slab()
  kasan: Remove references to folio in __kasan_mempool_poison_object()
  slab: Remove references to folios from virt_to_slab()
  mm: Remove redundant test in validate_page_before_insert()

 include/linux/mm.h         |   6 +-
 include/linux/page-flags.h |  16 +---
 mm/kasan/common.c          |  12 +--
 mm/kfence/core.c           |  12 ++-
 mm/memcontrol.c            |  36 +++-----
 mm/memory.c                |   3 +-
 mm/slab.h                  |  58 ++++++-------
 mm/slab_common.c           |  30 ++++---
 mm/slub.c                  | 163 +++++++++++++++++--------------------
 mm/usercopy.c              |  21 +++--
 10 files changed, 164 insertions(+), 193 deletions(-)

-- 
2.47.2



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

end of thread, other threads:[~2025-09-03  5:23 UTC | newest]

Thread overview: 32+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-29 15:47 [PATCH 00/22] Prepare slab for memdescs Matthew Wilcox (Oracle)
2025-08-29 15:47 ` [PATCH 01/22] slab: Remove unnecessary test from alloc_debug_processing() Matthew Wilcox (Oracle)
2025-08-29 15:47 ` [PATCH 02/22] slab: Remove unnecessary test from alloc_single_from_partial() Matthew Wilcox (Oracle)
2025-08-29 15:47 ` [PATCH 03/22] slab: Remove dead code in check_slab() Matthew Wilcox (Oracle)
2025-08-29 15:47 ` [PATCH 04/22] slab: Remove dead code in free_consistency_checks() Matthew Wilcox (Oracle)
2025-08-29 15:47 ` [PATCH 05/22] mm: Constify compound_order() and page_size() Matthew Wilcox (Oracle)
2025-08-29 20:42   ` Zi Yan
2025-08-29 22:53     ` Matthew Wilcox
2025-08-31  1:06       ` Zi Yan
2025-09-01 15:45   ` David Hildenbrand
2025-08-29 15:47 ` [PATCH 06/22] slab: Reimplement page_slab() Matthew Wilcox (Oracle)
2025-09-01 15:50   ` David Hildenbrand
2025-08-29 15:47 ` [PATCH 07/22] slab: Remove folio references from __ksize() Matthew Wilcox (Oracle)
2025-09-03  5:23   ` Matthew Wilcox
2025-08-29 15:47 ` [PATCH 08/22] slab: Remove folio references in memcg_slab_post_charge() Matthew Wilcox (Oracle)
2025-08-29 15:47 ` [PATCH 09/22] slab: Remove folio references in slab alloc/free Matthew Wilcox (Oracle)
2025-08-29 15:47 ` [PATCH 10/22] slab: Remove folio references from ___kmalloc_large_node() Matthew Wilcox (Oracle)
2025-08-29 15:47 ` [PATCH 11/22] slab: Remove folio references from free_large_kmalloc() Matthew Wilcox (Oracle)
2025-08-29 15:47 ` [PATCH 12/22] slab: Remove folio references from kvfree_rcu_cb() Matthew Wilcox (Oracle)
2025-08-29 15:47 ` [PATCH 13/22] slab: Remove folio references from kvfree() Matthew Wilcox (Oracle)
2025-08-29 15:47 ` [PATCH 14/22] slab: Remove folio references from __do_krealloc() Matthew Wilcox (Oracle)
2025-08-29 15:47 ` [PATCH 15/22] slab: Remove folio references from build_detached_freelist() Matthew Wilcox (Oracle)
2025-08-29 15:47 ` [PATCH 16/22] slab: Remove dead code from free_large_kmalloc() Matthew Wilcox (Oracle)
2025-08-29 15:47 ` [PATCH 17/22] slab: Remove folio references from kfree_rcu_sheaf() Matthew Wilcox (Oracle)
2025-08-29 15:47 ` [PATCH 18/22] usercopy: Remove folio references from check_heap_object() Matthew Wilcox (Oracle)
2025-08-29 15:47 ` [PATCH 19/22] memcg: Convert mem_cgroup_from_obj_folio() to mem_cgroup_from_obj_slab() Matthew Wilcox (Oracle)
2025-08-29 15:47 ` [PATCH 20/22] kasan: Remove references to folio in __kasan_mempool_poison_object() Matthew Wilcox (Oracle)
2025-09-01 15:47   ` David Hildenbrand
2025-08-29 15:47 ` [PATCH 21/22] slab: Remove references to folios from virt_to_slab() Matthew Wilcox (Oracle)
2025-08-29 15:47 ` [PATCH 22/22] mm: Remove redundant test in validate_page_before_insert() Matthew Wilcox (Oracle)
2025-09-01 15:46   ` David Hildenbrand
2025-08-29 17:05 ` [PATCH 00/22] Prepare slab for memdescs 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).