函数逻辑报告 |
Source Code:block\blk-cgroup.c |
Create Date:2022-07-27 19:15:02 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称: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.
函数原型:static struct blkcg_gq *blkg_create(struct blkcg *blkcg, struct request_queue *q, struct blkcg_gq *new_blkg)
返回类型:struct blkcg_gq
参数:
类型 | 参数 | 名称 |
---|---|---|
struct blkcg * | blkcg | |
struct request_queue * | q | |
struct blkcg_gq * | new_blkg |
233 | WARN_ON_ONCE(!_read_lock_held() - might we be in RCU read-side critical section?* If CONFIG_DEBUG_LOCK_ALLOC is selected, returns nonzero iff in an RCU* read-side critical section) |
234 | lockdep_assert_held( & queue_lock) |
237 | 如果blk_queue_dying(q)则 |
239 | 转到:err_free_blkg |
245 | 转到:err_free_blkg |
251 | 如果非wb_congested则 |
253 | 转到:err_put_css |
257 | 如果非new_blkg则 |
259 | 如果此条件成立可能性小(为编译器优化)(!new_blkg)则 |
261 | 转到:err_put_congested |
265 | * Each blkg gets congested separately and the congestion state is * propagated to the matching bdi_writeback_congested.等于wb_congested |
272 | 转到:err_put_congested |
279 | pol等于blkcg_policy[i] |
281 | 如果pd[i]且pd_init_fn则pd_init_fn(pd[i]) |
286 | 加自旋锁 |
287 | ret等于在radix树中插入节点 |
288 | 如果此条件成立可能性大(为编译器优化)(!ret)则 |
300 | 自旋锁解锁 |
307 | 返回:错误号 |
309 | err_put_congested : |
311 | err_put_css : |
312 | 设置一个css引用 |
313 | err_free_blkg : |
315 | 返回:错误号 |
名称 | 描述 |
---|---|
__blkg_lookup_create | __blkg_lookup_create - lookup blkg, try to create one if not there*@blkcg: blkcg of interest*@q: request_queue of interest* Lookup blkg for the @blkcg - @q pair. If it doesn't exist, try to* create one |
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 插件可实现:逻辑报告 代码生成和批量转换代码 |