函数逻辑报告 |
Source Code:block\blk-cgroup.c |
Create Date:2022-07-27 19:14:53 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称: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.
函数原型:static struct blkcg_gq *blkg_alloc(struct blkcg *blkcg, struct request_queue *q, gfp_t gfp_mask)
返回类型:struct blkcg_gq
参数:
类型 | 参数 | 名称 |
---|---|---|
struct blkcg * | blkcg | |
struct request_queue * | q | |
gfp_t | gfp_mask |
151 | blkg等于根据内存节点分配内存 |
152 | 如果非blkg则返回:NULL |
158 | iostat_cpu等于alloc_percpu_gfp(structblkg_iostat_set, gfp_mask) |
159 | 如果非iostat_cpu则转到:err_free |
163 | 初始化链表头 |
164 | spin_lock_init( & async_bio_lock) |
165 | bio_list_init( & async_bios) |
166 | INIT_WORK( & async_bio_work, blkg_async_bio_workfn) |
169 | u64_stats_init( & sync) |
171 | u64_stats_init( & sync) |
174 | pol等于blkcg_policy[i] |
177 | 如果非blkcg_policy_enabled(q, pol)则继续下一循环 |
181 | pd等于pd_alloc_fn(gfp_mask, q, blkcg) |
190 | 返回:blkg |
192 | err_free : |
194 | 返回:NULL |
名称 | 描述 |
---|---|
blkg_create | If @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_prep | lkg_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_queue | lkcg_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. |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |