|
|
Subscribe / Log in / New account

Prepare slab for memdescs

From:  "Matthew Wilcox (Oracle)" <willy-AT-infradead.org>
To:  Vlastimil Babka <vbabka-AT-suse.cz>, Andrew Morton <akpm-AT-linux-foundation.org>
Subject:  [PATCH v3 00/17] Prepare slab for memdescs
Date:  Fri, 24 Oct 2025 21:44:15 +0100
Message-ID:  <20251024204434.2461319-1-willy@infradead.org>
Cc:  "Matthew Wilcox (Oracle)" <willy-AT-infradead.org>, Christoph Lameter <cl-AT-gentwo.org>, David Rientjes <rientjes-AT-google.com>, Roman Gushchin <roman.gushchin-AT-linux.dev>, Harry Yoo <harry.yoo-AT-oracle.com>, linux-mm-AT-kvack.org
Archive-link:  Article

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.

v3:
 - Rebased on next-20251022
 - Picked up review tags (thanks!)

Matthew Wilcox (Oracle) (17):
  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()
  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           |  12 ++--
 mm/memcontrol.c            |  36 ++++------
 mm/slab.h                  |  58 ++++++++--------
 mm/slab_common.c           |  29 ++++----
 mm/slub.c                  | 138 ++++++++++++++++++-------------------
 mm/usercopy.c              |  21 +++---
 8 files changed, 148 insertions(+), 174 deletions(-)

-- 
2.47.2




Copyright © 2025, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds