I/O过程
2021-08-17 13:03:32 7 举报
I/O流程图
作者其他创作
大纲/内容
判断能否合并到当前I/O调度算法队列的request上
判断
bio_attempt_back_merge
否
blk_account_io_start
bio合并到算法队列request上,merge += 1
get_requestinit_request_from_bio
attempt_front_merge
part_dec_in_flight
blk_account_io_merge
是
bio_attemp_back_merge
bio_attempt_front_merge
generetic_make_request
判断能否二次合并
add_acct_request
blk_try_merge
新的request加入plug->list
submit_bio()
list_add_tail
blk_queue_bio
attempt_plug_merge
elv_merge
后向合并
不能合并,根据bio分配新的request
判断能否合并到plug->list链表的request上
__elv_add_request
attempt_back_merge
前向合并
发生二次合并,I/O队列中request数量in_flight -= 1
attempt_merge
bio_attemp_front_merge
新的request加入I/O队列
bio合并到plug->list request上,merge += 1
__blk_run_queue
判断当前程序是否使用plug->list
0 条评论
下一页