1What: /sys/kernel/slab 2Date: May 2007 3KernelVersion: 2.6.22 4Contact: Pekka Enberg <penberg@cs.helsinki.fi>, 5 Christoph Lameter <cl@gentwo.org> 6Description: 7 The /sys/kernel/slab directory contains a snapshot of the 8 internal state of the SLUB allocator for each cache. Certain 9 files may be modified to change the behavior of the cache (and 10 any cache it aliases, if any). 11Users: kernel memory tuning tools 12 13What: /sys/kernel/slab/<cache>/aliases 14Date: May 2007 15KernelVersion: 2.6.22 16Contact: Pekka Enberg <penberg@cs.helsinki.fi>, 17 Christoph Lameter <cl@gentwo.org> 18Description: 19 The aliases file is read-only and specifies how many caches 20 have merged into this cache. 21 22What: /sys/kernel/slab/<cache>/align 23Date: May 2007 24KernelVersion: 2.6.22 25Contact: Pekka Enberg <penberg@cs.helsinki.fi>, 26 Christoph Lameter <cl@gentwo.org> 27Description: 28 The align file is read-only and specifies the cache's object 29 alignment in bytes. 30 31What: /sys/kernel/slab/<cache>/alloc_calls 32Date: May 2007 33KernelVersion: 2.6.22 34Contact: Pekka Enberg <penberg@cs.helsinki.fi>, 35 Christoph Lameter <cl@gentwo.org> 36Description: 37 The alloc_calls file is read-only and lists the kernel code 38 locations from which allocations for this cache were performed. 39 The alloc_calls file only contains information if debugging is 40 enabled for that cache (see 41 Documentation/admin-guide/mm/slab.rst). 42 43What: /sys/kernel/slab/<cache>/alloc_fastpath 44Date: February 2008 45KernelVersion: 2.6.25 46Contact: Pekka Enberg <penberg@cs.helsinki.fi>, 47 Christoph Lameter <cl@gentwo.org> 48Description: 49 The alloc_fastpath file shows how many objects have been 50 allocated using the fast path. It can be written to clear the 51 current count. 52 Available when CONFIG_SLUB_STATS is enabled. 53 54What: /sys/kernel/slab/<cache>/alloc_from_partial 55Date: February 2008 56KernelVersion: 2.6.25 57Contact: Pekka Enberg <penberg@cs.helsinki.fi>, 58 Christoph Lameter <cl@gentwo.org> 59Description: 60 The alloc_from_partial file shows how many times a cpu slab has 61 been full and it has been refilled by using a slab from the list 62 of partially used slabs. It can be written to clear the current 63 count. 64 Available when CONFIG_SLUB_STATS is enabled. 65 66What: /sys/kernel/slab/<cache>/alloc_refill 67Date: February 2008 68KernelVersion: 2.6.25 69Contact: Pekka Enberg <penberg@cs.helsinki.fi>, 70 Christoph Lameter <cl@gentwo.org> 71Description: 72 The alloc_refill file shows how many times the per-cpu freelist 73 was empty but there were objects available as the result of 74 remote cpu frees. It can be written to clear the current count. 75 Available when CONFIG_SLUB_STATS is enabled. 76 77What: /sys/kernel/slab/<cache>/alloc_slab 78Date: February 2008 79KernelVersion: 2.6.25 80Contact: Pekka Enberg <penberg@cs.helsinki.fi>, 81 Christoph Lameter <cl@gentwo.org> 82Description: 83 The alloc_slab file is shows how many times a new slab had to 84 be allocated from the page allocator. It can be written to 85 clear the current count. 86 Available when CONFIG_SLUB_STATS is enabled. 87 88What: /sys/kernel/slab/<cache>/alloc_slowpath 89Date: February 2008 90KernelVersion: 2.6.25 91Contact: Pekka Enberg <penberg@cs.helsinki.fi>, 92 Christoph Lameter <cl@gentwo.org> 93Description: 94 The alloc_slowpath file shows how many objects have been 95 allocated using the slow path because of a refill or 96 allocation from a partial or new slab. It can be written to 97 clear the current count. 98 Available when CONFIG_SLUB_STATS is enabled. 99 100What: /sys/kernel/slab/<cache>/cache_dma 101Date: May 2007 102KernelVersion: 2.6.22 103Contact: Pekka Enberg <penberg@cs.helsinki.fi>, 104 Christoph Lameter <cl@gentwo.org> 105Description: 106 The cache_dma file is read-only and specifies whether objects 107 are from ZONE_DMA. 108 Available when CONFIG_ZONE_DMA is enabled. 109 110What: /sys/kernel/slab/<cache>/cpu_slabs 111Date: May 2007 112KernelVersion: 2.6.22 113Contact: Pekka Enberg <penberg@cs.helsinki.fi>, 114 Christoph Lameter <cl@gentwo.org> 115Description: 116 The cpu_slabs file is read-only. It is deprecated and always 117 reads "0" since the removal of per-cpu slabs in Linux 7.0. It 118 previously displayed how many cpu slabs were active and their 119 NUMA locality. The file is kept for backwards compatibility. 120 121What: /sys/kernel/slab/<cache>/cpuslab_flush 122Date: April 2009 123KernelVersion: 2.6.31 124Contact: Pekka Enberg <penberg@cs.helsinki.fi>, 125 Christoph Lameter <cl@gentwo.org> 126Description: 127 The file cpuslab_flush shows how many times a cache's cpu slabs 128 have been flushed as the result of destroying or shrinking a 129 cache, a cpu going offline, or as the result of forcing an 130 allocation from a certain node. It can be written to clear the 131 current count. 132 Available when CONFIG_SLUB_STATS is enabled. 133 134What: /sys/kernel/slab/<cache>/ctor 135Date: May 2007 136KernelVersion: 2.6.22 137Contact: Pekka Enberg <penberg@cs.helsinki.fi>, 138 Christoph Lameter <cl@gentwo.org> 139Description: 140 The ctor file is read-only and specifies the cache's object 141 constructor function, which is invoked for each object when a 142 new slab is allocated. 143 144What: /sys/kernel/slab/<cache>/deactivate_empty 145Date: February 2008 146KernelVersion: 2.6.25 147Contact: Pekka Enberg <penberg@cs.helsinki.fi>, 148 Christoph Lameter <cl@gentwo.org> 149Description: 150 The deactivate_empty file shows how many times an empty cpu slab 151 was deactivated. It can be written to clear the current count. 152 Available when CONFIG_SLUB_STATS is enabled. 153 154What: /sys/kernel/slab/<cache>/deactivate_full 155Date: February 2008 156KernelVersion: 2.6.25 157Contact: Pekka Enberg <penberg@cs.helsinki.fi>, 158 Christoph Lameter <cl@gentwo.org> 159Description: 160 The deactivate_full file shows how many times a full cpu slab 161 was deactivated. It can be written to clear the current count. 162 Available when CONFIG_SLUB_STATS is enabled. 163 164What: /sys/kernel/slab/<cache>/deactivate_remote_frees 165Date: February 2008 166KernelVersion: 2.6.25 167Contact: Pekka Enberg <penberg@cs.helsinki.fi>, 168 Christoph Lameter <cl@gentwo.org> 169Description: 170 The deactivate_remote_frees file shows how many times a cpu slab 171 has been deactivated and contained free objects that were freed 172 remotely. It can be written to clear the current count. 173 Available when CONFIG_SLUB_STATS is enabled. 174 175What: /sys/kernel/slab/<cache>/deactivate_to_head 176Date: February 2008 177KernelVersion: 2.6.25 178Contact: Pekka Enberg <penberg@cs.helsinki.fi>, 179 Christoph Lameter <cl@gentwo.org> 180Description: 181 The deactivate_to_head file shows how many times a partial cpu 182 slab was deactivated and added to the head of its node's partial 183 list. It can be written to clear the current count. 184 Available when CONFIG_SLUB_STATS is enabled. 185 186What: /sys/kernel/slab/<cache>/deactivate_to_tail 187Date: February 2008 188KernelVersion: 2.6.25 189Contact: Pekka Enberg <penberg@cs.helsinki.fi>, 190 Christoph Lameter <cl@gentwo.org> 191Description: 192 The deactivate_to_tail file shows how many times a partial cpu 193 slab was deactivated and added to the tail of its node's partial 194 list. It can be written to clear the current count. 195 Available when CONFIG_SLUB_STATS is enabled. 196 197What: /sys/kernel/slab/<cache>/destroy_by_rcu 198Date: May 2007 199KernelVersion: 2.6.22 200Contact: Pekka Enberg <penberg@cs.helsinki.fi>, 201 Christoph Lameter <cl@gentwo.org> 202Description: 203 The destroy_by_rcu file is read-only and specifies whether 204 slabs (not objects) are freed by rcu. 205 206What: /sys/kernel/slab/<cache>/free_add_partial 207Date: February 2008 208KernelVersion: 2.6.25 209Contact: Pekka Enberg <penberg@cs.helsinki.fi>, 210 Christoph Lameter <cl@gentwo.org> 211Description: 212 The free_add_partial file shows how many times an object has 213 been freed in a full slab so that it had to added to its node's 214 partial list. It can be written to clear the current count. 215 Available when CONFIG_SLUB_STATS is enabled. 216 217What: /sys/kernel/slab/<cache>/free_calls 218Date: May 2007 219KernelVersion: 2.6.22 220Contact: Pekka Enberg <penberg@cs.helsinki.fi>, 221 Christoph Lameter <cl@gentwo.org> 222Description: 223 The free_calls file is read-only and lists the locations of 224 object frees if slab debugging is enabled (see 225 Documentation/admin-guide/mm/slab.rst). 226 227What: /sys/kernel/slab/<cache>/free_fastpath 228Date: February 2008 229KernelVersion: 2.6.25 230Contact: Pekka Enberg <penberg@cs.helsinki.fi>, 231 Christoph Lameter <cl@gentwo.org> 232Description: 233 The free_fastpath file shows how many objects have been freed 234 using the fast path because it was an object from the cpu slab. 235 It can be written to clear the current count. 236 Available when CONFIG_SLUB_STATS is enabled. 237 238What: /sys/kernel/slab/<cache>/free_frozen 239Date: February 2008 240KernelVersion: 2.6.25 241Contact: Pekka Enberg <penberg@cs.helsinki.fi>, 242 Christoph Lameter <cl@gentwo.org> 243Description: 244 The free_frozen file shows how many objects have been freed to 245 a frozen slab (i.e. a remote cpu slab). It can be written to 246 clear the current count. 247 Available when CONFIG_SLUB_STATS is enabled. 248 249What: /sys/kernel/slab/<cache>/free_remove_partial 250Date: February 2008 251KernelVersion: 2.6.25 252Contact: Pekka Enberg <penberg@cs.helsinki.fi>, 253 Christoph Lameter <cl@gentwo.org> 254Description: 255 The free_remove_partial file shows how many times an object has 256 been freed to a now-empty slab so that it had to be removed from 257 its node's partial list. It can be written to clear the current 258 count. 259 Available when CONFIG_SLUB_STATS is enabled. 260 261What: /sys/kernel/slab/<cache>/free_slab 262Date: February 2008 263KernelVersion: 2.6.25 264Contact: Pekka Enberg <penberg@cs.helsinki.fi>, 265 Christoph Lameter <cl@gentwo.org> 266Description: 267 The free_slab file shows how many times an empty slab has been 268 freed back to the page allocator. It can be written to clear 269 the current count. 270 Available when CONFIG_SLUB_STATS is enabled. 271 272What: /sys/kernel/slab/<cache>/free_slowpath 273Date: February 2008 274KernelVersion: 2.6.25 275Contact: Pekka Enberg <penberg@cs.helsinki.fi>, 276 Christoph Lameter <cl@gentwo.org> 277Description: 278 The free_slowpath file shows how many objects have been freed 279 using the slow path (i.e. to a full or partial slab). It can 280 be written to clear the current count. 281 Available when CONFIG_SLUB_STATS is enabled. 282 283What: /sys/kernel/slab/<cache>/hwcache_align 284Date: May 2007 285KernelVersion: 2.6.22 286Contact: Pekka Enberg <penberg@cs.helsinki.fi>, 287 Christoph Lameter <cl@gentwo.org> 288Description: 289 The hwcache_align file is read-only and specifies whether 290 objects are aligned on cachelines. 291 292What: /sys/kernel/slab/<cache>/min_partial 293Date: February 2009 294KernelVersion: 2.6.30 295Contact: Pekka Enberg <penberg@cs.helsinki.fi>, 296 David Rientjes <rientjes@google.com> 297Description: 298 The min_partial file specifies how many empty slabs shall 299 remain on a node's partial list to avoid the overhead of 300 allocating new slabs. Such slabs may be reclaimed by utilizing 301 the shrink file. 302 303What: /sys/kernel/slab/<cache>/object_size 304Date: May 2007 305KernelVersion: 2.6.22 306Contact: Pekka Enberg <penberg@cs.helsinki.fi>, 307 Christoph Lameter <cl@gentwo.org> 308Description: 309 The object_size file is read-only and specifies the cache's 310 object size. 311 312What: /sys/kernel/slab/<cache>/objects 313Date: May 2007 314KernelVersion: 2.6.22 315Contact: Pekka Enberg <penberg@cs.helsinki.fi>, 316 Christoph Lameter <cl@gentwo.org> 317Description: 318 The objects file is read-only and displays how many objects are 319 active and from which nodes they are from. 320 321What: /sys/kernel/slab/<cache>/objects_partial 322Date: April 2008 323KernelVersion: 2.6.26 324Contact: Pekka Enberg <penberg@cs.helsinki.fi>, 325 Christoph Lameter <cl@gentwo.org> 326Description: 327 The objects_partial file is read-only and displays how many 328 objects are on partial slabs and from which nodes they are 329 from. 330 331What: /sys/kernel/slab/<cache>/objs_per_slab 332Date: May 2007 333KernelVersion: 2.6.22 334Contact: Pekka Enberg <penberg@cs.helsinki.fi>, 335 Christoph Lameter <cl@gentwo.org> 336Description: 337 The file objs_per_slab is read-only and specifies how many 338 objects may be allocated from a single slab of the order 339 specified in /sys/kernel/slab/<cache>/order. 340 341What: /sys/kernel/slab/<cache>/order 342Date: May 2007 343KernelVersion: 2.6.22 344Contact: Pekka Enberg <penberg@cs.helsinki.fi>, 345 Christoph Lameter <cl@gentwo.org> 346Description: 347 The order file specifies the page order at which new slabs are 348 allocated. It is writable and can be changed to increase the 349 number of objects per slab. If a slab cannot be allocated 350 because of fragmentation, SLUB will retry with the minimum order 351 possible depending on its characteristics. 352 353 When debug_guardpage_minorder=N (N > 0) parameter is specified 354 (see Documentation/admin-guide/kernel-parameters.rst), the minimum possible 355 order is used and this sysfs entry can not be used to change 356 the order at run time. 357 358What: /sys/kernel/slab/<cache>/order_fallback 359Date: April 2008 360KernelVersion: 2.6.26 361Contact: Pekka Enberg <penberg@cs.helsinki.fi>, 362 Christoph Lameter <cl@gentwo.org> 363Description: 364 The order_fallback file shows how many times an allocation of a 365 new slab has not been possible at the cache's order and instead 366 fallen back to its minimum possible order. It can be written to 367 clear the current count. 368 369 Available when CONFIG_SLUB_STATS is enabled. 370 371What: /sys/kernel/slab/<cache>/partial 372Date: May 2007 373KernelVersion: 2.6.22 374Contact: Pekka Enberg <penberg@cs.helsinki.fi>, 375 Christoph Lameter <cl@gentwo.org> 376Description: 377 The partial file is read-only and displays how long many 378 partial slabs there are and how long each node's list is. 379 380What: /sys/kernel/slab/<cache>/poison 381Date: May 2007 382KernelVersion: 2.6.22 383Contact: Pekka Enberg <penberg@cs.helsinki.fi>, 384 Christoph Lameter <cl@gentwo.org> 385Description: 386 The poison file specifies whether objects should be poisoned 387 when a new slab is allocated. 388 389What: /sys/kernel/slab/<cache>/reclaim_account 390Date: May 2007 391KernelVersion: 2.6.22 392Contact: Pekka Enberg <penberg@cs.helsinki.fi>, 393 Christoph Lameter <cl@gentwo.org> 394Description: 395 The reclaim_account file specifies whether the cache's objects 396 are reclaimable (and grouped by their mobility). 397 398What: /sys/kernel/slab/<cache>/red_zone 399Date: May 2007 400KernelVersion: 2.6.22 401Contact: Pekka Enberg <penberg@cs.helsinki.fi>, 402 Christoph Lameter <cl@gentwo.org> 403Description: 404 The red_zone file specifies whether the cache's objects are red 405 zoned. 406 407What: /sys/kernel/slab/<cache>/remote_node_defrag_ratio 408Date: January 2008 409KernelVersion: 2.6.25 410Contact: Pekka Enberg <penberg@cs.helsinki.fi>, 411 Christoph Lameter <cl@gentwo.org> 412Description: 413 The file remote_node_defrag_ratio specifies the percentage of 414 times SLUB will attempt to refill the cpu slab with a partial 415 slab from a remote node as opposed to allocating a new slab on 416 the local node. This reduces the amount of wasted memory over 417 the entire system but can be expensive. 418 419 Available when CONFIG_NUMA is enabled. 420 421What: /sys/kernel/slab/<cache>/sanity_checks 422Date: May 2007 423KernelVersion: 2.6.22 424Contact: Pekka Enberg <penberg@cs.helsinki.fi>, 425 Christoph Lameter <cl@gentwo.org> 426Description: 427 The sanity_checks file specifies whether expensive checks 428 should be performed on free and, at minimum, enables double free 429 checks. Caches that enable sanity_checks cannot be merged with 430 caches that do not. 431 432What: /sys/kernel/slab/<cache>/shrink 433Date: May 2007 434KernelVersion: 2.6.22 435Contact: Pekka Enberg <penberg@cs.helsinki.fi>, 436 Christoph Lameter <cl@gentwo.org> 437Description: 438 The shrink file is used to reclaim unused slab cache 439 memory from a cache. Empty per-cpu or partial slabs 440 are freed and the partial list is sorted so the slabs 441 with the fewest available objects are used first. 442 It only accepts a value of "1" on write for shrinking 443 the cache. Other input values are considered invalid. 444 Shrinking slab caches might be expensive and can 445 adversely impact other running applications. So it 446 should be used with care. 447 448What: /sys/kernel/slab/<cache>/slab_size 449Date: May 2007 450KernelVersion: 2.6.22 451Contact: Pekka Enberg <penberg@cs.helsinki.fi>, 452 Christoph Lameter <cl@gentwo.org> 453Description: 454 The slab_size file is read-only and specifies the object size 455 with metadata (debugging information and alignment) in bytes. 456 457What: /sys/kernel/slab/<cache>/slabs 458Date: May 2007 459KernelVersion: 2.6.22 460Contact: Pekka Enberg <penberg@cs.helsinki.fi>, 461 Christoph Lameter <cl@gentwo.org> 462Description: 463 The slabs file is read-only and displays how long many slabs 464 there are (both cpu and partial) and from which nodes they are 465 from. 466 467What: /sys/kernel/slab/<cache>/store_user 468Date: May 2007 469KernelVersion: 2.6.22 470Contact: Pekka Enberg <penberg@cs.helsinki.fi>, 471 Christoph Lameter <cl@gentwo.org> 472Description: 473 The store_user file specifies whether the location of 474 allocation or free should be tracked for a cache. 475 476What: /sys/kernel/slab/<cache>/total_objects 477Date: April 2008 478KernelVersion: 2.6.26 479Contact: Pekka Enberg <penberg@cs.helsinki.fi>, 480 Christoph Lameter <cl@gentwo.org> 481Description: 482 The total_objects file is read-only and displays how many total 483 objects a cache has and from which nodes they are from. 484 485What: /sys/kernel/slab/<cache>/trace 486Date: May 2007 487KernelVersion: 2.6.22 488Contact: Pekka Enberg <penberg@cs.helsinki.fi>, 489 Christoph Lameter <cl@gentwo.org> 490Description: 491 The trace file specifies whether object allocations and frees 492 should be traced. 493 494What: /sys/kernel/slab/<cache>/validate 495Date: May 2007 496KernelVersion: 2.6.22 497Contact: Pekka Enberg <penberg@cs.helsinki.fi>, 498 Christoph Lameter <cl@gentwo.org> 499Description: 500 Writing to the validate file causes SLUB to traverse all of its 501 cache's objects and check the validity of metadata. 502 503What: /sys/kernel/slab/<cache>/usersize 504Date: Jun 2017 505Contact: David Windsor <dave@nullcore.net> 506Description: 507 The usersize file is read-only and contains the usercopy 508 region size. 509 510What: /sys/kernel/slab/<cache>/slabs_cpu_partial 511Date: Aug 2011 512Contact: Christoph Lameter <cl@gentwo.org> 513Description: 514 This read-only file is deprecated and always reads "0(0)" since 515 the removal of per-cpu partial slabs in Linux 7.0. It previously 516 showed the number of partially allocated frozen slabs. The file 517 is kept for backwards compatibility. 518 519What: /sys/kernel/slab/<cache>/cpu_partial 520Date: Aug 2011 521Contact: Christoph Lameter <cl@gentwo.org> 522Description: 523 This file is deprecated and always reads "0" since the removal of 524 per-cpu partial slabs in Linux 7.0. It previously showed the 525 number of per-cpu partial pages to keep around. The file is kept 526 for backwards compatibility. 527