函数逻辑报告 |
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 插件可实现:逻辑报告 代码生成和批量转换代码 |