sysfs-kernel-slab 17 KB

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