Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:mm\zsmalloc.c Create Date:2022-07-28 16:26:49
Last Modify:2020-03-12 14:18:49 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:For each size class, zspages are divided into different groups* depending on how "full" they are. This was done so that we could* easily find empty or nearly empty zspages when we try to shrink* the pool (not yet implemented)

Proto:static enum fullness_group get_fullness_group(struct size_class *class, struct zspage *zspage)

Type:enum fullness_group

Parameter:

TypeParameterName
struct size_class *class
struct zspage *zspage
699  inuse = Protected by class->lock
700  objs_per_zspage = objs_per_zspage
702  If inuse == 0 Then fg = ZS_EMPTY
704  Else if inuse == objs_per_zspage Then fg = ZS_FULL
706  Else if inuse <= 3 * objs_per_zspage / We assign a page to ZS_ALMOST_EMPTY fullness group when:* n <= N / f, where* n = number of allocated objects* N = total number of objects zspage can store* f = fullness_threshold_frac* Similarly, we assign zspage to:* ZS_ALMOST_FULL when n > N / f* Then fg = ZS_ALMOST_EMPTY
708  Else fg = ZS_ALMOST_FULL
711  Return fg
Caller
NameDescribe
fix_fullness_groupEach size class maintains zspages in different fullness groups depending* on the number of live objects they contain. When allocating or freeing* objects, the fullness status of the page can change, say, from ALMOST_FULL
zs_malloczs_malloc - Allocate block of given size from pool.*@pool: pool to allocate from*@size: size of block to allocate*@gfp: gfp flags when allocating object* On success, handle to the allocated object is returned,* otherwise 0.
putback_zspageputback_zspage - add @zspage into right class's fullness list*@class: destination class*@zspage: target page* Return @zspage's fullness_group