| 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 |