函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:block\blk-mq-sched.c Create Date:2022-07-27 18:50:37
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:blk_mq_sched_insert_request

函数原型:void blk_mq_sched_insert_request(struct request *rq, bool at_head, bool run_queue, bool async)

返回类型:void

参数:

类型参数名称
struct request *rq
boolat_head
boolrun_queue
boolasync
381  q等于q
382  e等于elevator
383  ctx等于mq_ctx
384  hctx等于mq_hctx
387  如果非rq_flags按位与quest for flush sequence 的值且Check if the bio or request is one that needs special treatment in the* flush state machine.
388  lk_insert_flush - insert a new PREFLUSH/FUA request*@rq: request to insert* To be called from __elv_add_request() for %ELEVATOR_INSERT_FLUSH insertions.* or __blk_mq_run_hw_queue() to dispatch request.*@rq is being submitted
389  转到:run
392  WARN_ON(e && (tag != - 1))
394  如果blk_mq_sched_bypass_insert(hctx, !!e, rq)则转到:run
397  如果einsert_requests
398  LIST_HEAD(list)
400  添加链表项
401  insert_requests(hctx, & list, at_head)
402  否则
403  加自旋锁
404  __blk_mq_insert_request(hctx, rq, at_head)
405  自旋锁解锁
408  run :
409  如果run_queueblk_mq_run_hw_queue(hctx, async)
调用者
名称描述
blk_mq_requeue_work
blk_mq_make_request
blk_execute_rq_nowaitlk_execute_rq_nowait - insert a request into queue for execution*@q: queue to insert the request in*@bd_disk: matching gendisk*@rq: request to insert*@at_head: insert request at head or tail of queue*@done: I/O completion handler* Description:* Insert a