linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 00/22] Prepare slab for memdescs
@ 2025-09-10 11:54 Matthew Wilcox (Oracle)
  2025-09-10 11:54 ` [PATCH v2 01/22] slab: Remove unnecessary test from alloc_debug_processing() Matthew Wilcox (Oracle)
                   ` (22 more replies)
  0 siblings, 23 replies; 39+ messages in thread
From: Matthew Wilcox (Oracle) @ 2025-09-10 11:54 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.

This has dependencies on both the memdesc_flags_t conversion and the
sheaves work (as well as textual conflicts with nth_page removal and
a few other patches).  At this point in the development cycle, I'm not
pushing for this to be included in the next merge window.

v2:
 - Rebased on next-20250909
 - Picked up review tags (thanks!)
 - Fixed the bug in ksize()

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           |  29 ++++---
 mm/slub.c                  | 163 +++++++++++++++++--------------------
 mm/usercopy.c              |  21 +++--
 10 files changed, 160 insertions(+), 196 deletions(-)

-- 
2.47.2



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

end of thread, other threads:[~2025-09-11 16:38 UTC | newest]

Thread overview: 39+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-09-10 11:54 [PATCH v2 00/22] Prepare slab for memdescs Matthew Wilcox (Oracle)
2025-09-10 11:54 ` [PATCH v2 01/22] slab: Remove unnecessary test from alloc_debug_processing() Matthew Wilcox (Oracle)
2025-09-10 22:19   ` Christoph Lameter (Ampere)
2025-09-10 11:54 ` [PATCH v2 02/22] slab: Remove unnecessary test from alloc_single_from_partial() Matthew Wilcox (Oracle)
2025-09-10 22:23   ` Christoph Lameter (Ampere)
2025-09-11 16:38     ` Vlastimil Babka
2025-09-10 11:54 ` [PATCH v2 03/22] slab: Remove dead code in check_slab() Matthew Wilcox (Oracle)
2025-09-10 22:27   ` Christoph Lameter (Ampere)
2025-09-10 11:54 ` [PATCH v2 04/22] slab: Remove dead code in free_consistency_checks() Matthew Wilcox (Oracle)
2025-09-10 22:30   ` Christoph Lameter (Ampere)
2025-09-11 15:29     ` Vlastimil Babka
2025-09-10 11:54 ` [PATCH v2 05/22] mm: Constify compound_order() and page_size() Matthew Wilcox (Oracle)
2025-09-10 14:01   ` Vlastimil Babka
2025-09-10 17:33   ` Christoph Lameter (Ampere)
2025-09-10 11:54 ` [PATCH v2 06/22] slab: Reimplement page_slab() Matthew Wilcox (Oracle)
2025-09-10 22:46   ` Christoph Lameter (Ampere)
2025-09-10 23:01     ` Matthew Wilcox
2025-09-10 23:14       ` Christoph Lameter (Ampere)
2025-09-11  7:10     ` Vlastimil Babka
2025-09-11 11:35       ` Matthew Wilcox
2025-09-10 11:54 ` [PATCH v2 07/22] slab: Remove folio references from __ksize() Matthew Wilcox (Oracle)
2025-09-10 11:54 ` [PATCH v2 08/22] slab: Remove folio references in memcg_slab_post_charge() Matthew Wilcox (Oracle)
2025-09-10 11:54 ` [PATCH v2 09/22] slab: Remove folio references in slab alloc/free Matthew Wilcox (Oracle)
2025-09-10 11:54 ` [PATCH v2 10/22] slab: Remove folio references from ___kmalloc_large_node() Matthew Wilcox (Oracle)
2025-09-10 11:54 ` [PATCH v2 11/22] slab: Remove folio references from free_large_kmalloc() Matthew Wilcox (Oracle)
2025-09-10 11:54 ` [PATCH v2 12/22] slab: Remove folio references from kvfree_rcu_cb() Matthew Wilcox (Oracle)
2025-09-10 11:54 ` [PATCH v2 13/22] slab: Remove folio references from kvfree() Matthew Wilcox (Oracle)
2025-09-10 11:54 ` [PATCH v2 14/22] slab: Remove folio references from __do_krealloc() Matthew Wilcox (Oracle)
2025-09-10 11:54 ` [PATCH v2 15/22] slab: Remove folio references from build_detached_freelist() Matthew Wilcox (Oracle)
2025-09-10 11:54 ` [PATCH v2 16/22] slab: Remove dead code from free_large_kmalloc() Matthew Wilcox (Oracle)
2025-09-10 22:45   ` Christoph Lameter (Ampere)
2025-09-10 11:54 ` [PATCH v2 17/22] slab: Remove folio references from kfree_rcu_sheaf() Matthew Wilcox (Oracle)
2025-09-10 11:55 ` [PATCH v2 18/22] usercopy: Remove folio references from check_heap_object() Matthew Wilcox (Oracle)
2025-09-10 11:55 ` [PATCH v2 19/22] memcg: Convert mem_cgroup_from_obj_folio() to mem_cgroup_from_obj_slab() Matthew Wilcox (Oracle)
2025-09-10 11:55 ` [PATCH v2 20/22] kasan: Remove references to folio in __kasan_mempool_poison_object() Matthew Wilcox (Oracle)
2025-09-10 11:55 ` [PATCH v2 21/22] slab: Remove references to folios from virt_to_slab() Matthew Wilcox (Oracle)
2025-09-10 11:55 ` [PATCH v2 22/22] mm: Remove redundant test in validate_page_before_insert() Matthew Wilcox (Oracle)
2025-09-10 14:02   ` Vlastimil Babka
2025-09-10 14:05 ` [PATCH v2 00/22] Prepare slab for memdescs Vlastimil Babka

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox