Slab Allocation¶
Functions and structures¶
-
slab_folio¶
slab_folio (s)
The folio allocated for a slab
Parameters
sThe slab.
Description
Slabs are allocated as folios that contain the individual objects and are
using some fields in the first struct page of the folio - those fields are
now accessed by struct slab. It is occasionally necessary to convert back to
a folio in order to communicate with the rest of the mm. Please use this
helper function instead of casting yourself, as the implementation may change
in the future.
Parameters
const struct page *pageA page which may or may not belong to a slab.
Return
The slab which contains this page or NULL if the page does not belong to a slab. This includes pages returned from large kmalloc.
-
slab_page¶
slab_page (s)
The first
struct pageallocated for a slab
Parameters
sThe slab.
Description
A convenience wrapper for converting slab to the first struct page of the
underlying folio, to communicate with code not yet converted to folio or
struct slab.
-
enum slab_flags¶
How the slab flags bits are used.
Constants
SL_lockedIs locked with
slab_lock()SL_partialOn the per-node partial list
SL_pfmemallocWas allocated from PF_MEMALLOC reserves
Description
The slab flags share space with the page flags but some bits have different interpretations. The high bits are used for information like zone/node/section.