78eb00cc57
When collecting slub stats for particular workloads, it's necessary to collect each statistic for all caches before the job is even started because the counters are usually greater than zero just from boot and initialization. This allows a statistic to be cleared on each cpu by writing '0' to its sysfs file. This creates a baseline for statistics of interest before the workload is started. Setting a statistic to a particular value is not supported, so all values written to these files other than '0' returns -EINVAL. Cc: Christoph Lameter <cl@linux-foundation.org> Signed-off-by: David Rientjes <rientjes@google.com> Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
487 lines
17 KiB
Plaintext
487 lines
17 KiB
Plaintext
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.txt).
|
|
|
|
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.txt).
|
|
|
|
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.
|
|
|
|
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 written when memory should be reclaimed from
|
|
a cache. Empty partial slabs are freed and the partial list is
|
|
sorted so the slabs with the fewest available objects are used
|
|
first.
|
|
|
|
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.
|