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