函数逻辑报告 |
Source Code:block\bfq-iosched.c |
Create Date:2022-07-27 19:33:37 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:bfq_init_rq
函数原型:static struct bfq_queue *bfq_init_rq(struct request *rq)
返回类型:struct bfq_queue
参数:
类型 | 参数 | 名称 |
---|---|---|
struct request * | rq |
6112 | bfqd等于elevator_data |
6114 | is_sync等于rq_is_sync(rq) |
6116 | bool new_queue = false |
6117 | bool bfqq_already_existing = TSC's on different sockets may be reset asynchronously.* This may cause the TSC ADJUST value on socket 0 to be NOT 0., split = false |
6119 | 如果此条件成立可能性小(为编译器优化)(!icq)则返回:NULL |
6134 | bfq_check_ioprio_change(bic, bio) |
6136 | bfq_bic_update_cgroup(bic, bio) |
6138 | bfqq等于bfq_get_bfqq_handle_split(bfqd, bic, bio, TSC's on different sockets may be reset asynchronously.* This may cause the TSC ADJUST value on socket 0 to be NOT 0., is_sync, & new_queue) |
6141 | 如果此条件成立可能性大(为编译器优化)(!new_queue)则 |
6143 | 如果bfq_bfqq_coop(bfqq)且bfq_bfqq_split_coop(bfqq)则 |
6144 | bfq_log_bfqq(bfqd, bfqq, "breaking apart bfqq") |
6147 | 如果bfq_bfqq_in_large_burst(bfqq)则* Same purpose as the previous fields for the value of the * field keeping the queue's belonging to a large burst = true |
6150 | bfqq等于Returns NULL if a new bfqq should be allocated, or the old bfqq if this* was the last process referring to that bfqq. |
6151 | split = true |
6157 | 否则bfqq_already_existing = true |
6163 | ce counter 自加 |
6164 | bfq_log_bfqq(bfqd, bfqq, "get_request %p: bfqq %p, %d", rq, bfqq, ce counter ) |
6176 | 如果此条件成立可能性大(为编译器优化)(bfqq != & fallback dummy bfqq for extreme OOM conditions )且bfqq_process_refs(bfqq)恒等于1则 |
6178 | 如果split则 |
6214 | 返回:bfqq |
名称 | 描述 |
---|---|
bfq_request_merged | |
bfq_requests_merged | This function is called to notify the scheduler that the requests* rq and 'next' have been merged, with 'next' going away |
bfq_insert_request |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |