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