Function report |
Source Code:block\blk-mq.c |
Create Date:2022-07-28 17:09:43 |
Last Modify:2020-03-17 23:18:05 | Copyright©Brick |
home page | Tree |
Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:Returns true if we did some work AND can potentially do more.
Proto:bool blk_mq_dispatch_rq_list(struct request_queue *q, struct list_head *list, bool got_budget)
Type:bool
Parameter:
Type | Parameter | Name |
---|---|---|
struct request_queue * | q | |
struct list_head * | list | |
bool | got_budget |
1181 | bool no_tag = false |
1183 | ret = BLK_STS_OK |
1185 | If list_empty - tests whether a list is empty*@head: the list to test. Then Return false |
1188 | WARN_ON(!list_is_singular - tests whether a list has just one entry.*@head: the list to test. && got_budget) |
1194 | Do |
1200 | If Not got_budget && Not blk_mq_get_dispatch_budget(hctx) Then Break |
1203 | If Not blk_mq_get_driver_tag(rq) Then |
1217 | If @flags: BLK_MQ_F_* flags. Defines the behaviour of the queue. & BLK_MQ_F_TAG_SHARED Then no_tag = true |
1219 | Break |
1231 | If list_empty - tests whether a list is empty*@head: the list to test. Then last = true |
1233 | Else |
1235 | last = Not blk_mq_get_driver_tag(nxt) |
1245 | If Not list_empty - tests whether a list is empty*@head: the list to test. Then |
1247 | blk_mq_put_driver_tag(nxt) |
1250 | __blk_mq_requeue_request(rq) |
1251 | Break |
1254 | If Value for the false possibility is greater at compile time(ret != BLK_STS_OK) Then |
1260 | queued++ |
1269 | If Not list_empty - tests whether a list is empty*@head: the list to test. Then |
1277 | If commit_rqs Then commit_rqs(hctx) |
1280 | spin_lock( & @lock: Protects the dispatch list. ) |
1312 | Else if needs_restart && ret == BLK_STS_RESOURCE Then blk_mq_delay_run_hw_queue(hctx, ms units ) |
1316 | Return false |
Name | Describe |
---|---|
blk_mq_do_dispatch_sched | 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. |
blk_mq_do_dispatch_ctx | 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. |
blk_mq_sched_dispatch_requests |
Source code conversion tool public plug-in interface | X |
---|---|
Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |