函数逻辑报告 |
Source Code:block\blk-mq.c |
Create Date:2022-07-27 18:46:09 |
| Last Modify:2020-03-17 23:18:05 | Copyright©Brick |
| 首页 | 函数Tree |
| 注解内核,赢得工具 | 下载SCCT | English |
函数名称:blk_mq_alloc_rqs
函数原型:int blk_mq_alloc_rqs(struct blk_mq_tag_set *set, struct blk_mq_tags *tags, unsigned int hctx_idx, unsigned int depth)
返回类型:int
参数:
| 类型 | 参数 | 名称 |
|---|---|---|
| struct blk_mq_tag_set * | set | |
| struct blk_mq_tags * | tags | |
| unsigned int | hctx_idx | |
| unsigned int | depth |
| 2115 | max_order等于4 |
| 2119 | node等于CPU -> queue mappings |
| 2120 | 如果node恒等于NUMA_NO_NODE则node等于numa_node |
| 2123 | 初始化链表头 |
| 2134 | this_order等于max_order |
| 2139 | 当this_order且left小于order_to_size(this_order - 1)循环 |
| 2140 | this_order自减 |
| 2142 | 循环 |
| 2143 | page等于Allocate pages, preferring the node given as nid. When nid == NUMA_NO_NODE,* prefer the current CPU's closest node. Otherwise node must be valid and* online. |
| 2148 | 如果非this_order自减则退出 |
| 2150 | 如果order_to_size(this_order)小于rq_size则退出 |
| 2152 | 当1循环 |
| 2157 | 私有数据指针等于this_order |
| 2158 | 添加链表项 |
| 2160 | p等于page_address(page) |
| 2167 | to_do等于两数取小(entries_per_page, depth - i) |
| 2182 | 返回:0 |
| 2184 | fail : |
| 2185 | blk_mq_free_rqs(set, tags, hctx_idx) |
| 2186 | 返回:负ENOMEM |
| 源代码转换工具 开放的插件接口 | X |
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |