函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:Only SCSI implements .get_budget and .put_budget, and SCSI restarts* its queue by itself in its completion handler, so we don't need to* restart queue if .get_budget() returns BLK_STS_NO_RESOURCE.

函数原型:static void blk_mq_do_dispatch_ctx(struct blk_mq_hw_ctx *hctx)

返回类型:void

参数:

类型参数名称
struct blk_mq_hw_ctx *hctx
136  q等于@queue: Pointer to the request queue that owns this hardware context.
137  LIST_HEAD(rq_list)
138  ctx等于READ_ONCE(@dispatch_from: Software queue to be used when no scheduler was* selected.)
140  循环
143  如果非sbitmap_any_bit_set( & @ctx_map: Bitmap for each software queue. If bit is on, there is a* pending request in that software queue.)则退出
146  如果非blk_mq_get_dispatch_budget(hctx)则退出
149  rq等于blk_mq_dequeue_from_ctx(hctx, ctx)
150  如果非rq
152  退出
160  添加链表项
163  ctx等于blk_mq_next_ctx(hctx, mq_ctx)
165 Returns true if we did some work AND can potentially do more.循环
167  WRITE_ONCE(@dispatch_from: Software queue to be used when no scheduler was* selected., ctx)
调用者
名称描述
blk_mq_sched_dispatch_requests