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 |