What:		/sys/kernel/slab
Date:		May 2007
KernelVersion:	2.6.22
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
Description:
		The /sys/kernel/slab directory contains a snapshot of the
		internal state of the SLUB allocator for each cache.  Certain
		files may be modified to change the behavior of the cache (and
		any cache it aliases, if any).
Users:		kernel memory tuning tools

What:		/sys/kernel/slab/cache/aliases
Date:		May 2007
KernelVersion:	2.6.22
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
Description:
		The aliases file is read-only and specifies how many caches
		have merged into this cache.

What:		/sys/kernel/slab/cache/align
Date:		May 2007
KernelVersion:	2.6.22
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
Description:
		The align file is read-only and specifies the cache's object
		alignment in bytes.

What:		/sys/kernel/slab/cache/alloc_calls
Date:		May 2007
KernelVersion:	2.6.22
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
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/vm/slub.rst).

What:		/sys/kernel/slab/cache/alloc_fastpath
Date:		February 2008
KernelVersion:	2.6.25
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
Description:
		The alloc_fastpath file shows how many objects have been
		allocated using the fast path.  It can be written to clear the
		current count.
		Available when CONFIG_SLUB_STATS is enabled.

What:		/sys/kernel/slab/cache/alloc_from_partial
Date:		February 2008
KernelVersion:	2.6.25
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
Description:
		The alloc_from_partial file shows how many times a cpu slab has
		been full and it has been refilled by using a slab from the list
		of partially used slabs.  It can be written to clear the current
		count.
		Available when CONFIG_SLUB_STATS is enabled.

What:		/sys/kernel/slab/cache/alloc_refill
Date:		February 2008
KernelVersion:	2.6.25
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
Description:
		The alloc_refill file shows how many times the per-cpu freelist
		was empty but there were objects available as the result of
		remote cpu frees.  It can be written to clear the current count.
		Available when CONFIG_SLUB_STATS is enabled.

What:		/sys/kernel/slab/cache/alloc_slab
Date:		February 2008
KernelVersion:	2.6.25
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
Description:
		The alloc_slab file is shows how many times a new slab had to
		be allocated from the page allocator.  It can be written to
		clear the current count.
		Available when CONFIG_SLUB_STATS is enabled.

What:		/sys/kernel/slab/cache/alloc_slowpath
Date:		February 2008
KernelVersion:	2.6.25
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
Description:
		The alloc_slowpath file shows how many objects have been
		allocated using the slow path because of a refill or
		allocation from a partial or new slab.  It can be written to
		clear the current count.
		Available when CONFIG_SLUB_STATS is enabled.

What:		/sys/kernel/slab/cache/cache_dma
Date:		May 2007
KernelVersion:	2.6.22
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
Description:
		The cache_dma file is read-only and specifies whether objects
		are from ZONE_DMA.
		Available when CONFIG_ZONE_DMA is enabled.

What:		/sys/kernel/slab/cache/cpu_slabs
Date:		May 2007
KernelVersion:	2.6.22
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
Description:
		The cpu_slabs file is read-only and displays how many cpu slabs
		are active and their NUMA locality.

What:		/sys/kernel/slab/cache/cpuslab_flush
Date:		April 2009
KernelVersion:	2.6.31
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
Description:
		The file cpuslab_flush shows how many times a cache's cpu slabs
		have been flushed as the result of destroying or shrinking a
		cache, a cpu going offline, or as the result of forcing an
		allocation from a certain node.  It can be written to clear the
		current count.
		Available when CONFIG_SLUB_STATS is enabled.

What:		/sys/kernel/slab/cache/ctor
Date:		May 2007
KernelVersion:	2.6.22
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
Description:
		The ctor file is read-only and specifies the cache's object
		constructor function, which is invoked for each object when a
		new slab is allocated.

What:		/sys/kernel/slab/cache/deactivate_empty
Date:		February 2008
KernelVersion:	2.6.25
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
Description:
		The deactivate_empty file shows how many times an empty cpu slab
		was deactivated.  It can be written to clear the current count.
		Available when CONFIG_SLUB_STATS is enabled.

What:		/sys/kernel/slab/cache/deactivate_full
Date:		February 2008
KernelVersion:	2.6.25
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
Description:
		The deactivate_full file shows how many times a full cpu slab
		was deactivated.  It can be written to clear the current count.
		Available when CONFIG_SLUB_STATS is enabled.

What:		/sys/kernel/slab/cache/deactivate_remote_frees
Date:		February 2008
KernelVersion:	2.6.25
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
Description:
		The deactivate_remote_frees file shows how many times a cpu slab
		has been deactivated and contained free objects that were freed
		remotely.  It can be written to clear the current count.
		Available when CONFIG_SLUB_STATS is enabled.

What:		/sys/kernel/slab/cache/deactivate_to_head
Date:		February 2008
KernelVersion:	2.6.25
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
Description:
		The deactivate_to_head file shows how many times a partial cpu
		slab was deactivated and added to the head of its node's partial
		list.  It can be written to clear the current count.
		Available when CONFIG_SLUB_STATS is enabled.

What:		/sys/kernel/slab/cache/deactivate_to_tail
Date:		February 2008
KernelVersion:	2.6.25
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
Description:
		The deactivate_to_tail file shows how many times a partial cpu
		slab was deactivated and added to the tail of its node's partial
		list.  It can be written to clear the current count.
		Available when CONFIG_SLUB_STATS is enabled.

What:		/sys/kernel/slab/cache/destroy_by_rcu
Date:		May 2007
KernelVersion:	2.6.22
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
Description:
		The destroy_by_rcu file is read-only and specifies whether
		slabs (not objects) are freed by rcu.

What:		/sys/kernel/slab/cache/free_add_partial
Date:		February 2008
KernelVersion:	2.6.25
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
Description:
		The free_add_partial file shows how many times an object has
		been freed in a full slab so that it had to added to its node's
		partial list.  It can be written to clear the current count.
		Available when CONFIG_SLUB_STATS is enabled.

What:		/sys/kernel/slab/cache/free_calls
Date:		May 2007
KernelVersion:	2.6.22
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
Description:
		The free_calls file is read-only and lists the locations of
		object frees if slab debugging is enabled (see
		Documentation/vm/slub.rst).

What:		/sys/kernel/slab/cache/free_fastpath
Date:		February 2008
KernelVersion:	2.6.25
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
Description:
		The free_fastpath file shows how many objects have been freed
		using the fast path because it was an object from the cpu slab.
		It can be written to clear the current count.
		Available when CONFIG_SLUB_STATS is enabled.

What:		/sys/kernel/slab/cache/free_frozen
Date:		February 2008
KernelVersion:	2.6.25
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
Description:
		The free_frozen file shows how many objects have been freed to
		a frozen slab (i.e. a remote cpu slab).  It can be written to
		clear the current count.
		Available when CONFIG_SLUB_STATS is enabled.

What:		/sys/kernel/slab/cache/free_remove_partial
Date:		February 2008
KernelVersion:	2.6.25
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
Description:
		The free_remove_partial file shows how many times an object has
		been freed to a now-empty slab so that it had to be removed from
		its node's partial list.  It can be written to clear the current
		count.
		Available when CONFIG_SLUB_STATS is enabled.

What:		/sys/kernel/slab/cache/free_slab
Date:		February 2008
KernelVersion:	2.6.25
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
Description:
		The free_slab file shows how many times an empty slab has been
		freed back to the page allocator.  It can be written to clear
		the current count.
		Available when CONFIG_SLUB_STATS is enabled.

What:		/sys/kernel/slab/cache/free_slowpath
Date:		February 2008
KernelVersion:	2.6.25
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
Description:
		The free_slowpath file shows how many objects have been freed
		using the slow path (i.e. to a full or partial slab).  It can
		be written to clear the current count.
		Available when CONFIG_SLUB_STATS is enabled.

What:		/sys/kernel/slab/cache/hwcache_align
Date:		May 2007
KernelVersion:	2.6.22
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
Description:
		The hwcache_align file is read-only and specifies whether
		objects are aligned on cachelines.

What:		/sys/kernel/slab/cache/min_partial
Date:		February 2009
KernelVersion:	2.6.30
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		David Rientjes <rientjes@google.com>
Description:
		The min_partial file specifies how many empty slabs shall
		remain on a node's partial list to avoid the overhead of
		allocating new slabs.  Such slabs may be reclaimed by utilizing
		the shrink file.

What:		/sys/kernel/slab/cache/object_size
Date:		May 2007
KernelVersion:	2.6.22
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
Description:
		The object_size file is read-only and specifies the cache's
		object size.

What:		/sys/kernel/slab/cache/objects
Date:		May 2007
KernelVersion:	2.6.22
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
Description:
		The objects file is read-only and displays how many objects are
		active and from which nodes they are from.

What:		/sys/kernel/slab/cache/objects_partial
Date:		April 2008
KernelVersion:	2.6.26
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
Description:
		The objects_partial file is read-only and displays how many
		objects are on partial slabs and from which nodes they are
		from.

What:		/sys/kernel/slab/cache/objs_per_slab
Date:		May 2007
KernelVersion:	2.6.22
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
Description:
		The file objs_per_slab is read-only and specifies how many
		objects may be allocated from a single slab of the order
		specified in /sys/kernel/slab/cache/order.

What:		/sys/kernel/slab/cache/order
Date:		May 2007
KernelVersion:	2.6.22
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
Description:
		The order file specifies the page order at which new slabs are
		allocated.  It is writable and can be changed to increase the
		number of objects per slab.  If a slab cannot be allocated
		because of fragmentation, SLUB will retry with the minimum order
		possible depending on its characteristics.
		When debug_guardpage_minorder=N (N > 0) parameter is specified
		(see Documentation/admin-guide/kernel-parameters.rst), the minimum possible
		order is used and this sysfs entry can not be used to change
		the order at run time.

What:		/sys/kernel/slab/cache/order_fallback
Date:		April 2008
KernelVersion:	2.6.26
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
Description:
		The order_fallback file shows how many times an allocation of a
		new slab has not been possible at the cache's order and instead
		fallen back to its minimum possible order.  It can be written to
		clear the current count.
		Available when CONFIG_SLUB_STATS is enabled.

What:		/sys/kernel/slab/cache/partial
Date:		May 2007
KernelVersion:	2.6.22
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
Description:
		The partial file is read-only and displays how long many
		partial slabs there are and how long each node's list is.

What:		/sys/kernel/slab/cache/poison
Date:		May 2007
KernelVersion:	2.6.22
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
Description:
		The poison file specifies whether objects should be poisoned
		when a new slab is allocated.

What:		/sys/kernel/slab/cache/reclaim_account
Date:		May 2007
KernelVersion:	2.6.22
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
Description:
		The reclaim_account file specifies whether the cache's objects
		are reclaimable (and grouped by their mobility).

What:		/sys/kernel/slab/cache/red_zone
Date:		May 2007
KernelVersion:	2.6.22
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
Description:
		The red_zone file specifies whether the cache's objects are red
		zoned.

What:		/sys/kernel/slab/cache/remote_node_defrag_ratio
Date:		January 2008
KernelVersion:	2.6.25
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
Description:
		The file remote_node_defrag_ratio specifies the percentage of
		times SLUB will attempt to refill the cpu slab with a partial
		slab from a remote node as opposed to allocating a new slab on
		the local node.  This reduces the amount of wasted memory over
		the entire system but can be expensive.
		Available when CONFIG_NUMA is enabled.

What:		/sys/kernel/slab/cache/sanity_checks
Date:		May 2007
KernelVersion:	2.6.22
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
Description:
		The sanity_checks file specifies whether expensive checks
		should be performed on free and, at minimum, enables double free
		checks.  Caches that enable sanity_checks cannot be merged with
		caches that do not.

What:		/sys/kernel/slab/cache/shrink
Date:		May 2007
KernelVersion:	2.6.22
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
Description:
		The shrink file is used to reclaim unused slab cache
		memory from a cache.  Empty per-cpu or partial slabs
		are freed and the partial list is sorted so the slabs
		with the fewest available objects are used first.
		It only accepts a value of "1" on write for shrinking
		the cache. Other input values are considered invalid.
		Shrinking slab caches might be expensive and can
		adversely impact other running applications.  So it
		should be used with care.

What:		/sys/kernel/slab/cache/slab_size
Date:		May 2007
KernelVersion:	2.6.22
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
Description:
		The slab_size file is read-only and specifies the object size
		with metadata (debugging information and alignment) in bytes.

What:		/sys/kernel/slab/cache/slabs
Date:		May 2007
KernelVersion:	2.6.22
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
Description:
		The slabs file is read-only and displays how long many slabs
		there are (both cpu and partial) and from which nodes they are
		from.

What:		/sys/kernel/slab/cache/store_user
Date:		May 2007
KernelVersion:	2.6.22
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
Description:
		The store_user file specifies whether the location of
		allocation or free should be tracked for a cache.

What:		/sys/kernel/slab/cache/total_objects
Date:		April 2008
KernelVersion:	2.6.26
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
Description:
		The total_objects file is read-only and displays how many total
		objects a cache has and from which nodes they are from.

What:		/sys/kernel/slab/cache/trace
Date:		May 2007
KernelVersion:	2.6.22
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
Description:
		The trace file specifies whether object allocations and frees
		should be traced.

What:		/sys/kernel/slab/cache/validate
Date:		May 2007
KernelVersion:	2.6.22
Contact:	Pekka Enberg <penberg@cs.helsinki.fi>,
		Christoph Lameter <cl@linux-foundation.org>
Description:
		Writing to the validate file causes SLUB to traverse all of its
		cache's objects and check the validity of metadata.
