Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:block\blk-cgroup.c Create Date:2022-07-28 17:39:19
Last Modify:2020-03-12 14:18:49 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:lkg_alloc - allocate a blkg*@blkcg: block cgroup the new blkg is associated with*@q: request_queue the new blkg is associated with*@gfp_mask: allocation mask to use* Allocate a new blkg assocating @blkcg and @q.

Proto:static struct blkcg_gq *blkg_alloc(struct blkcg *blkcg, struct request_queue *q, gfp_t gfp_mask)

Type:struct blkcg_gq

Parameter:

TypeParameterName
struct blkcg *blkcg
struct request_queue *q
gfp_tgfp_mask
151  blkg = kzalloc_node - allocate zeroed memory from a particular memory node.*@size: how many bytes of memory are required.*@flags: the type of memory to allocate (see kmalloc).*@node: memory node from which to allocate
152  If Not blkg Then Return NULL
155  If percpu_ref_init - initialize a percpu refcount*@ref: percpu_ref to initialize*@release: function which will be called when refcount hits 0*@flags: PERCPU_REF_INIT_* flags*@gfp: allocation mask to use* Initializes @ref Then Go to err_free
158  iostat_cpu = alloc_percpu_gfp(structblkg_iostat_set, gfp_mask)
159  If Not iostat_cpu Then Go to err_free
162  Pointer to the associated request_queue = q
163  Initialization list head
164  Process spin lock initialization( & async_bio_lock)
165  bio_list_init( & async_bios)
166  INIT_WORK( & async_bio_work, blkg_async_bio_workfn)
167  blkcg = blkcg
169  u64_stats_init( & sync)
170  for_each_possible_cpu(cpu)
171  u64_stats_init( & sync)
173  When i < Maximum number of blkcg policies allowed to be registered concurrently.* Defined here to simplify include dependency. cycle
174  pol = blkcg_policy[i]
177  If Not blkcg_policy_enabled(q, pol) Then Continue
181  pd = pd_alloc_fn(gfp_mask, q, blkcg)
182  If Not pd Then Go to err_free
185  pd[i] = pd
186  he blkg and policy id this per-policy data belongs to = blkg
187  plid = i
190  Return blkg
192  err_free :
193  lkg_free - free a blkg*@blkg: blkg to free* Free @blkg which may be partially allocated.
194  Return NULL
Caller
NameDescribe
blkg_createIf @new_blkg is %NULL, this function tries to allocate a new one as* necessary using %GFP_NOWAIT. @new_blkg is always consumed on return.
blkg_conf_preplkg_conf_prep - parse and prepare for per-blkg config update*@blkcg: target block cgroup*@pol: target policy*@input: input string*@ctx: blkg_conf_ctx to be filled* Parse per-blkg config update from @input and initialize @ctx with the* result
blkcg_init_queuelkcg_init_queue - initialize blkcg part of request queue*@q: request_queue to initialize* Called from blk_alloc_queue_node(). Responsible for initializing blkcg* part of new request_queue @q.* RETURNS:* 0 on success, -errno on failure.