All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4 00/16] Prepare slab for memdescs
@ 2025-11-13  0:09 Matthew Wilcox (Oracle)
  2025-11-13  0:09 ` [PATCH v4 01/16] slab: Reimplement page_slab() Matthew Wilcox (Oracle)
                   ` (16 more replies)
  0 siblings, 17 replies; 46+ messages in thread
From: Matthew Wilcox (Oracle) @ 2025-11-13  0:09 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.

v4:
 - Rebased on next-20251110 + a couple of fixes
 - Fixed compilation warnings when CONFIG_MEMCG not set
 - Picked up R-b tags from Harry (thanks!)
 - Restored the order of slab vs large_kmalloc tests (Vlastimil)
 - Removed setting of LargeKmalloc on tail pages (Vlastimil)
 - Restored handling of non-slab, non-kmalloc checks in
   check_heap_object() (me)

Matthew Wilcox (Oracle) (16):
  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 kfree()
  slab: Remove folio references from __do_krealloc()
  slab: Remove folio references from build_detached_freelist()
  slab: Remove folio references from kfree_rcu_sheaf()
  slab: Remove folio references from kfree_nolock()
  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()

 include/linux/page-flags.h |  16 +----
 mm/kasan/common.c          |  12 ++--
 mm/kfence/core.c           |  14 ++--
 mm/memcontrol.c            |  36 ++++------
 mm/slab.h                  |  58 ++++++++--------
 mm/slab_common.c           |  29 ++++----
 mm/slub.c                  | 137 +++++++++++++++++++------------------
 mm/usercopy.c              |  24 ++++---
 8 files changed, 153 insertions(+), 173 deletions(-)

-- 
2.47.2



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

end of thread, other threads:[~2025-11-24 21:06 UTC | newest]

Thread overview: 46+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-11-13  0:09 [PATCH v4 00/16] Prepare slab for memdescs Matthew Wilcox (Oracle)
2025-11-13  0:09 ` [PATCH v4 01/16] slab: Reimplement page_slab() Matthew Wilcox (Oracle)
2025-11-13 12:31   ` David Hildenbrand (Red Hat)
2025-11-13 14:02   ` Marco Elver
2025-11-24  2:03   ` Harry Yoo
2025-11-13  0:09 ` [PATCH v4 02/16] slab: Remove folio references from __ksize() Matthew Wilcox (Oracle)
2025-11-13 12:32   ` David Hildenbrand (Red Hat)
2025-11-24  2:31   ` Harry Yoo
2025-11-24  4:28     ` Matthew Wilcox
2025-11-24  5:18       ` Harry Yoo
2025-11-13  0:09 ` [PATCH v4 03/16] slab: Remove folio references in memcg_slab_post_charge() Matthew Wilcox (Oracle)
2025-11-13  0:09 ` [PATCH v4 04/16] slab: Remove folio references in slab alloc/free Matthew Wilcox (Oracle)
2025-11-13  0:09 ` [PATCH v4 05/16] slab: Remove folio references from ___kmalloc_large_node() Matthew Wilcox (Oracle)
2025-11-13  0:09 ` [PATCH v4 06/16] slab: Remove folio references from free_large_kmalloc() Matthew Wilcox (Oracle)
2025-11-13  0:09 ` [PATCH v4 07/16] slab: Remove folio references from kvfree_rcu_cb() Matthew Wilcox (Oracle)
2025-11-24  5:22   ` Harry Yoo
2025-11-13  0:09 ` [PATCH v4 08/16] slab: Remove folio references from kfree() Matthew Wilcox (Oracle)
2025-11-24  5:39   ` Harry Yoo
2025-11-24 13:53     ` Matthew Wilcox
2025-11-13  0:09 ` [PATCH v4 09/16] slab: Remove folio references from __do_krealloc() Matthew Wilcox (Oracle)
2025-11-24  5:55   ` Harry Yoo
2025-11-13  0:09 ` [PATCH v4 10/16] slab: Remove folio references from build_detached_freelist() Matthew Wilcox (Oracle)
2025-11-24  5:55   ` Harry Yoo
2025-11-13  0:09 ` [PATCH v4 11/16] slab: Remove folio references from kfree_rcu_sheaf() Matthew Wilcox (Oracle)
2025-11-24  5:58   ` Harry Yoo
2025-11-13  0:09 ` [PATCH v4 12/16] slab: Remove folio references from kfree_nolock() Matthew Wilcox (Oracle)
2025-11-24  5:59   ` Harry Yoo
2025-11-13  0:09 ` [PATCH v4 13/16] usercopy: Remove folio references from check_heap_object() Matthew Wilcox (Oracle)
2025-11-24  6:14   ` Harry Yoo
2025-11-24 21:06   ` Kees Cook
2025-11-13  0:09 ` [PATCH v4 14/16] memcg: Convert mem_cgroup_from_obj_folio() to mem_cgroup_from_obj_slab() Matthew Wilcox (Oracle)
2025-11-13 16:14   ` Johannes Weiner
2025-11-13 16:28     ` Vlastimil Babka
2025-11-13 19:42       ` Shakeel Butt
2025-11-13 20:33         ` Matthew Wilcox
2025-11-13 21:54           ` Shakeel Butt
2025-11-13 16:39     ` Matthew Wilcox
2025-11-13 19:16       ` Johannes Weiner
2025-11-13 19:26         ` Vlastimil Babka
2025-11-24  6:44       ` Harry Yoo
2025-11-13  0:09 ` [PATCH v4 15/16] kasan: Remove references to folio in __kasan_mempool_poison_object() Matthew Wilcox (Oracle)
2025-11-24  7:02   ` Harry Yoo
2025-11-13  0:09 ` [PATCH v4 16/16] slab: Remove references to folios from virt_to_slab() Matthew Wilcox (Oracle)
2025-11-24  7:09   ` Harry Yoo
2025-11-24 14:12     ` Matthew Wilcox
2025-11-13 11:28 ` [PATCH v4 00/16] Prepare slab for memdescs Vlastimil Babka

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.