函数逻辑报告 |
Source Code:block\blk-mq-tag.c |
Create Date:2022-07-27 18:48:05 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:blk_mq_get_tag
函数原型:unsigned int blk_mq_get_tag(struct blk_mq_alloc_data *data)
返回类型:unsigned int
参数:
类型 | 参数 | 名称 |
---|---|---|
struct blk_mq_alloc_data * | data |
104 | tags等于blk_mq_tags_from_data(data) |
111 | 如果flags按位与BLK_MQ_REQ_RESERVED则 |
112 | 如果此条件成立可能性小(为编译器优化)(!nr_reserved_tags)则 |
113 | WARN_ON_ONCE(1) |
114 | 返回:BLK_MQ_TAG_FAIL |
116 | bt等于breserved_tags |
117 | tag_offset等于0 |
118 | 否则 |
119 | bt等于bitmap_tags |
123 | tag等于__blk_mq_get_tag(data, bt) |
127 | 如果flags按位与BLK_MQ_REQ_NOWAIT则返回:BLK_MQ_TAG_FAIL |
130 | ws等于bt_wait_ptr(bt, hctx) |
131 | 循环 |
139 | blk_mq_run_hw_queue(hctx, false) |
145 | tag等于__blk_mq_get_tag(data, bt) |
149 | sbitmap_prepare_to_wait(bt, ws, & wait, 深度睡眠态) |
151 | tag等于__blk_mq_get_tag(data, bt) |
156 | io_schedule() |
158 | sbitmap_finish_wait(bt, ws, & wait) |
161 | hctx等于lk_mq_map_queue() - map (cmd_flags,type) to hardware queue*@q: request queue*@flags: request command flags*@cpu: cpu ctx |
163 | tags等于blk_mq_tags_from_data(data) |
164 | 如果flags按位与BLK_MQ_REQ_RESERVED则bt等于breserved_tags |
166 | 否则bt等于bitmap_tags |
174 | 如果bt不等于bt_prev则sbitmap_queue_wake_up(bt_prev) |
177 | ws等于bt_wait_ptr(bt, hctx) |
178 | 当1循环 |
180 | sbitmap_finish_wait(bt, ws, & wait) |
182 | found_tag : |
183 | 返回:tag加tag_offset |
名称 | 描述 |
---|---|
blk_mq_get_driver_tag |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |