Commit e8d780dc authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull slab updates from Vlastimil Babka:

 - Convert struct slab to its own flags instead of referencing page
   flags, which is another preparation step before separating it from
   struct page completely.

   Along with that, a bunch of documentation fixes and cleanups (Matthew
   Wilcox)

 - Convert large kmalloc to use frozen pages in order to be consistent
   with non-large kmalloc slabs (Vlastimil Babka)

 - MAINTAINERS updates (Matthew Wilcox, Lorenzo Stoakes)

 - Restore NUMA policy support for large kmalloc, broken by mistake in
   v6.1 (Vlastimil Babka)

* tag 'slab-for-6.17' of git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab:
  MAINTAINERS: add missing files to slab section
  slab: Update MAINTAINERS entry
  memcg_slabinfo: Fix use of PG_slab
  kfence: Remove mention of PG_slab
  vmcoreinfo: Remove documentation of PG_slab and PG_hugetlb
  doc: Add slab internal kernel-doc
  slub: Fix a documentation build error for krealloc()
  slab: Add SL_pfmemalloc flag
  slab: Add SL_partial flag
  slab: Rename slab->__page_flags to slab->flags
  doc: Move SLUB documentation to the admin guide
  mm, slab: use frozen pages for large kmalloc
  mm, slab: restore NUMA policy support for large kmalloc
parents 2db4df0c 81856964
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -37,7 +37,8 @@ Description:
		The alloc_calls file is read-only and lists the kernel code
		locations from which allocations for this cache were performed.
		The alloc_calls file only contains information if debugging is
		enabled for that cache (see Documentation/mm/slub.rst).
		enabled for that cache (see
		Documentation/admin-guide/mm/slab.rst).

What:		/sys/kernel/slab/<cache>/alloc_fastpath
Date:		February 2008
@@ -219,7 +220,7 @@ Contact: Pekka Enberg <penberg@cs.helsinki.fi>,
Description:
		The free_calls file is read-only and lists the locations of
		object frees if slab debugging is enabled (see
		Documentation/mm/slub.rst).
		Documentation/admin-guide/mm/slab.rst).

What:		/sys/kernel/slab/<cache>/free_fastpath
Date:		February 2008
+4 −4
Original line number Diff line number Diff line
@@ -325,14 +325,14 @@ NR_FREE_PAGES
On linux-2.6.21 or later, the number of free pages is in
vm_stat[NR_FREE_PAGES]. Used to get the number of free pages.

PG_lru|PG_private|PG_swapcache|PG_swapbacked|PG_slab|PG_hwpoision|PG_head_mask|PG_hugetlb
-----------------------------------------------------------------------------------------
PG_lru|PG_private|PG_swapcache|PG_swapbacked|PG_hwpoison|PG_head_mask
--------------------------------------------------------------------------

Page attributes. These flags are used to filter various unnecessary for
dumping pages.

PAGE_BUDDY_MAPCOUNT_VALUE(~PG_buddy)|PAGE_OFFLINE_MAPCOUNT_VALUE(~PG_offline)|PAGE_OFFLINE_MAPCOUNT_VALUE(~PG_unaccepted)
-------------------------------------------------------------------------------------------------------------------------
PAGE_SLAB_MAPCOUNT_VALUE|PAGE_BUDDY_MAPCOUNT_VALUE|PAGE_OFFLINE_MAPCOUNT_VALUE|PAGE_HUGETLB_MAPCOUNT_VALUE|PAGE_UNACCEPTED_MAPCOUNT_VALUE
------------------------------------------------------------------------------------------------------------------------------------------

More page attributes. These flags are used to filter various unnecessary for
dumping pages.
+7 −5
Original line number Diff line number Diff line
@@ -6587,14 +6587,14 @@
			slab_debug can create guard zones around objects and
			may poison objects when not in use. Also tracks the
			last alloc / free. For more information see
			Documentation/mm/slub.rst.
			Documentation/admin-guide/mm/slab.rst.
			(slub_debug legacy name also accepted for now)

	slab_max_order= [MM]
			Determines the maximum allowed order for slabs.
			A high setting may cause OOMs due to memory
			fragmentation. For more information see
			Documentation/mm/slub.rst.
			Documentation/admin-guide/mm/slab.rst.
			(slub_max_order legacy name also accepted for now)

	slab_merge	[MM]
@@ -6609,13 +6609,14 @@
			the number of objects indicated. The higher the number
			of objects the smaller the overhead of tracking slabs
			and the less frequently locks need to be acquired.
			For more information see Documentation/mm/slub.rst.
			For more information see
			Documentation/admin-guide/mm/slab.rst.
			(slub_min_objects legacy name also accepted for now)

	slab_min_order=	[MM]
			Determines the minimum page order for slabs. Must be
			lower or equal to slab_max_order. For more information see
			Documentation/mm/slub.rst.
			Documentation/admin-guide/mm/slab.rst.
			(slub_min_order legacy name also accepted for now)

	slab_nomerge	[MM]
@@ -6629,7 +6630,8 @@
			cache (risks via metadata attacks are mostly
			unchanged). Debug options disable merging on their
			own.
			For more information see Documentation/mm/slub.rst.
			For more information see
			Documentation/admin-guide/mm/slab.rst.
			(slub_nomerge legacy name also accepted for now)

	slab_strict_numa	[MM]
+1 −0
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@ the Linux memory management.
   numaperf
   pagemap
   shrinker_debugfs
   slab
   soft-dirty
   swap_numa
   transhuge
+9 −10
Original line number Diff line number Diff line
==========================
Short users guide for SLUB
==========================

The basic philosophy of SLUB is very different from SLAB. SLAB
requires rebuilding the kernel to activate debug options for all
slab caches. SLUB always includes full debugging but it is off by default.
SLUB can enable debugging only for selected slabs in order to avoid
an impact on overall system performance which may make a bug more
difficult to find.
========================================
Short users guide for the slab allocator
========================================

The slab allocator includes full debugging support (when built with
CONFIG_SLUB_DEBUG=y) but it is off by default (unless built with
CONFIG_SLUB_DEBUG_ON=y).  You can enable debugging only for selected
slabs in order to avoid an impact on overall system performance which
may make a bug more difficult to find.

In order to switch debugging on one can add an option ``slab_debug``
to the kernel command line. That will enable full debugging for
Loading