aboutsummaryrefslogtreecommitdiffstats
path: root/block/blk-mq.c
AgeCommit message (Expand)AuthorFilesLines
10 daysblock: support to account io_ticks preciselyYu Kuai1-0/+4
2024-05-01block: Improve zone write request completion handlingDamien Le Moal1-4/+2
2024-05-01block: Fix handling of non-empty flush write requests to zonesDamien Le Moal1-3/+3
2024-04-17block: Do not special-case plugging of zone write operationsDamien Le Moal1-6/+1
2024-04-17block: Remove BLK_STS_ZONE_RESOURCEDamien Le Moal1-26/+0
2024-04-17block: Implement zone append emulationDamien Le Moal1-2/+1
2024-04-17block: Introduce zone write pluggingDamien Le Moal1-3/+29
2024-04-17block: Introduce blk_zone_update_request_bio()Damien Le Moal1-6/+5
2024-04-17block: Remove req_bio_endio()Damien Le Moal1-30/+28
2024-04-01blk-mq: don't schedule block kworker on isolated CPUsMing Lei1-10/+47
2024-03-28block: Do not force full zone append completion in req_bio_endio()Damien Le Moal1-7/+2
2024-03-11Merge tag 'for-6.9/block-20240310' of git://git.kernel.dk/linuxLinus Torvalds1-98/+88
2024-03-11Merge tag 'vfs-6.9.iomap' of git://git.kernel.org/pub/scm/linux/kernel/git/vf...Linus Torvalds1-0/+2
2024-02-28blk-mq: don't change nr_hw_queues and nr_maps for kdump kernelMing Lei1-8/+6
2024-02-24block/blk-mq: Don't complete locally if capacities are differentQais Yousef1-2/+3
2024-02-24block: io wait hang check helperKeith Busch1-16/+3
2024-02-13block: pass a queue_limits argument to blk_mq_alloc_diskChristoph Hellwig1-2/+3
2024-02-13block: pass a queue_limits argument to blk_mq_init_queueChristoph Hellwig1-13/+8
2024-02-13block: pass a queue_limits argument to blk_alloc_queueChristoph Hellwig1-3/+4
2024-02-06block, fs: Restore the per-bio/request data lifetime fieldsBart Van Assche1-0/+2
2024-02-05block: add blk_time_get_ns() and blk_time_get() helpersJens Axboe1-8/+8
2024-02-05blk-mq: special case cached requests lessChristoph Hellwig1-19/+22
2024-02-05blk-mq: introduce a blk_mq_peek_cached_request helperChristoph Hellwig1-30/+33
2024-02-05blk-mq: move blk_mq_attempt_bio_merge out blk_mq_get_new_requestsChristoph Hellwig1-10/+11
2024-02-01block: Fix where bio IO priority gets setHongyu Jin1-10/+0
2024-01-18Merge tag 'for-6.8/block-2024-01-18' of git://git.kernel.dk/linuxLinus Torvalds1-11/+39
2024-01-12block: ensure we hold a queue reference when using queue limitsJens Axboe1-6/+10
2024-01-12blk-mq: rename blk_mq_can_use_cached_rqChristoph Hellwig1-3/+6
2024-01-12blk-mq: fix IO hang from sbitmap wakeup raceMing Lei1-0/+16
2024-01-11Merge tag 'for-6.8/block-2024-01-08' of git://git.kernel.dk/linuxLinus Torvalds1-1/+2
2024-01-10block: fix partial zone append completion handling in req_bio_endio()Damien Le Moal1-2/+7
2023-12-01block: skip QUEUE_FLAG_STATS and rq-qos for passthrough ioKundan Kumar1-1/+2
2023-12-01blk-mq: don't count completed flush data request as inflight in case of quiesceMing Lei1-1/+13
2023-11-13blk-mq: make sure active queue usage is held for bio_integrity_prep()Christoph Hellwig1-37/+38
2023-09-22blk-mq: update driver tags request table when start requestChengming Zhou1-0/+1
2023-09-22blk-mq: support batched queue_rqs() on shared tags queueChengming Zhou1-6/+1
2023-09-22blk-mq: remove RQF_MQ_INFLIGHTChengming Zhou1-4/+0
2023-09-22blk-mq: account active requests when get driver tagChengming Zhou1-21/+12
2023-09-11blk-mq: fix tags UAF when shrinking q->nr_hw_queuesChengming Zhou1-6/+7
2023-08-29Merge tag 'for-6.6/block-2023-08-28' of git://git.kernel.dk/linuxLinus Torvalds1-14/+31
2023-08-22blk-mq: prealloc tags when increase tagset nr_hw_queuesChengming Zhou1-0/+10
2023-08-22blk-mq: delete redundant tagset map update when fallbackChengming Zhou1-1/+0
2023-08-22blk-mq: fix tags leak when shrink nr_hw_queuesChengming Zhou1-1/+5
2023-08-19blk-mq: release scheduler resource when request completesChengming Zhou1-3/+20
2023-07-24block: Improve performance for BLK_MQ_F_BLOCKING driversBart Van Assche1-6/+10
2023-07-17blk-mq: use percpu csd to remote complete instead of per-rq csdChengming Zhou1-6/+6
2023-07-14blk-mq: Fix stall due to recursive flush plugRoss Lagerwall1-1/+8
2023-07-13blk-mq: fix start_time_ns and alloc_time_ns for pre-allocated rqChengming Zhou1-17/+30
2023-06-28block: add request polling helperKeith Busch1-16/+32
2023-06-28Merge branch 'for-6.5/block-late' into block-6.5Jens Axboe1-1/+5
2023-06-26Merge tag 'for-6.5/block-2023-06-23' of git://git.kernel.dk/linuxLinus Torvalds1-68/+73
2023-06-25blk-mq: fix two misuses on RQF_USE_SCHEDMing Lei1-1/+5
2023-06-21blk-mq: don't insert passthrough request into sw queueMing Lei1-1/+6
2023-06-16blk-mq: fix NULL dereference on q->elevator in blk_mq_elv_switch_noneMing Lei1-3/+7
2023-06-14blk-mq: check on cpu id when there is only one ctx mappingEd Tsai1-2/+3
2023-06-03blk-mq: fix blk_mq_hw_ctx active request accountingTian Lan1-4/+4
2023-05-24block: introduce block_io_start/block_io_done tracepointsHengqi Chen1-0/+4
2023-05-19blk-mq: don't use the requeue list to queue flush commandsChristoph Hellwig1-29/+13
2023-05-19blk-mq: use the I/O scheduler for writes from the flush state machineBart Van Assche1-2/+2
2023-05-19blk-mq: defer to the normal submission path for non-flush flush commandsChristoph Hellwig1-4/+4
2023-05-18blk-mq: make sure elevator callbacks aren't called for passthrough requestChristoph Hellwig1-24/+29
2023-05-18blk-mq: remove RQF_ELVPRIVChristoph Hellwig1-4/+2
2023-05-18blk-mq: don't queue plugged passthrough requests into schedulerMing Lei1-2/+6
2023-04-26Merge tag 'for-6.4/block-2023-04-21' of git://git.kernel.dk/linuxLinus Torvalds1-409/+256
2023-04-20Revert "block: Merge bio before checking ->cached_rq"Ming Lei1-4/+3
2023-04-13blk-mq: remove __blk_mq_run_hw_queueChristoph Hellwig1-20/+9
2023-04-13blk-mq: move the !async handling out of __blk_mq_delay_run_hw_queueChristoph Hellwig1-27/+13
2023-04-13blk-mq: move the blk_mq_hctx_stopped check in __blk_mq_delay_run_hw_queueChristoph Hellwig1-3/+2
2023-04-13blk-mq: remove the blk_mq_hctx_stopped check in blk_mq_run_work_fnChristoph Hellwig1-9/+2
2023-04-13blk-mq: pass a flags argument to blk_mq_add_to_requeue_listChristoph Hellwig1-3/+3
2023-04-13blk-mq: pass a flags argument to elevator_type->insert_requestsChristoph Hellwig1-3/+2
2023-04-13blk-mq: pass a flags argument to blk_mq_request_bypass_insertChristoph Hellwig1-9/+9
2023-04-13blk-mq: pass a flags argument to blk_mq_insert_requestChristoph Hellwig1-13/+14
2023-04-13blk-mq: don't kick the requeue_list in blk_mq_add_to_requeue_listChristoph Hellwig1-6/+7
2023-04-13blk-mq: don't run the hw_queue from blk_mq_request_bypass_insertChristoph Hellwig1-13/+11
2023-04-13blk-mq: don't run the hw_queue from blk_mq_insert_requestChristoph Hellwig1-24/+32
2023-04-13blk-mq: fold __blk_mq_try_issue_directly into its two callersChristoph Hellwig1-41/+31
2023-04-13blk-mq: factor out a blk_mq_get_budget_and_tag helperChristoph Hellwig1-10/+16
2023-04-13blk-mq: refactor the DONTPREP/SOFTBARRIER andling in blk_mq_requeue_workChristoph Hellwig1-10/+11
2023-04-13blk-mq: refactor passthrough vs flush handling in blk_mq_insert_requestChristoph Hellwig1-32/+18
2023-04-13blk-mq: fold __blk_mq_insert_req_list into blk_mq_insert_requestChristoph Hellwig1-18/+7
2023-04-13blk-mq: fold __blk_mq_insert_request into blk_mq_insert_requestChristoph Hellwig1-12/+2
2023-04-13blk-mq: move blk_mq_sched_insert_request to blk-mq.cChristoph Hellwig1-6/+81
2023-04-13blk-mq: fold blk_mq_sched_insert_requests into blk_mq_dispatch_plug_listChristoph Hellwig1-4/+13
2023-04-13blk-mq: move more logic into blk_mq_insert_requestsChristoph Hellwig1-2/+18
2023-04-13blk-mq: include <linux/blk-mq.h> in block/blk-mq.hChristoph Hellwig1-1/+0
2023-04-13blk-mq: remove blk-mq-tag.hChristoph Hellwig1-1/+0
2023-04-13blk-mq: don't plug for head insertions in blk_execute_rq_nowaitChristoph Hellwig1-1/+1
2023-04-04blk-mq: directly poll requestsKeith Busch1-3/+1
2023-03-27block: open code __blk_account_io_done()Chaitanya Kulkarni1-13/+9
2023-03-27block: open code __blk_account_io_start()Chaitanya Kulkarni1-20/+16
2023-03-20blk-mq: remove hybrid pollingKeith Busch1-199/+6
2023-03-16blk-mq: return actual keyslot error in blk_insert_cloned_request()Eric Biggers1-2/+3
2023-03-16blk-crypto: remove blk_crypto_insert_cloned_request()Eric Biggers1-1/+1
2023-03-16blk-mq: release crypto keyslot before reporting I/O completeEric Biggers1-1/+14
2023-03-14block: do not reverse request order when flushing plug listJan Kara1-2/+3
2023-03-03Merge tag 'block-6.3-2023-03-03' of git://git.kernel.dk/linuxLinus Torvalds1-3/+4
2023-03-02blk-mq: enforce op-specific segment limits in blk_insert_cloned_requestUday Shankar1-3/+4
2023-02-20Merge tag 'for-6.3/block-2023-02-16' of git://git.kernel.dk/linuxLinus Torvalds1-83/+69
2023-02-09block: Merge bio before checking ->cached_rqXiao Ni1-3/+4
2023-02-06blk-mq: use switch/case to improve readability in blk_mq_try_issue_list_directlyKemeng Shi1-9/+13
2023-02-06blk-mq: remove set of bd->last when get driver tag for next request failsKemeng Shi1-22/+2
2023-02-06blk-mq: remove unnecessary error count and check in blk_mq_dispatch_rq_listKemeng Shi1-6/+5
2023-02-06blk-mq: simplify flush check in blk_mq_dispatch_rq_listKemeng Shi1-3/+3
2023-02-06blk-mq: use blk_mq_commit_rqs helper in blk_mq_try_issue_list_directlyKemeng Shi1-10/+3
2023-02-06blk-mq: remove unncessary error count and commit in blk_mq_plug_issue_directKemeng Shi1-10/+4
2023-02-06blk-mq: make blk_mq_commit_rqs a general function for all commitsKemeng Shi1-14/+23
2023-02-06blk-mq: remove unncessary from_schedule parameter in blk_mq_plug_issue_directKemeng Shi1-5/+5
2023-02-06blk-mq: remove unnecessary list_empty check in blk_mq_try_issue_list_directlyKemeng Shi1-2/+1
2023-02-06blk-mq: Fix potential io hung for shared sbitmap per tagsetKemeng Shi1-2/+4
2023-02-06blk-mq: wait on correct sbitmap_queue in blk_mq_mark_tag_waitKemeng Shi1-1/+5
2023-02-06blk-mq: avoid sleep in blk_mq_alloc_request_hctxKemeng Shi1-1/+2
2023-01-31block: Fix the blk_mq_destroy_queue() documentationBart Van Assche1-2/+3
2023-01-17block: fix hctx checks for batch allocationPavel Begunkov1-1/+5
2023-01-04block: handle bio_split_to_limits() NULL returnJens Axboe1-1/+4
2022-12-13Merge tag 'for-6.2/block-2022-12-08' of git://git.kernel.dk/linuxLinus Torvalds1-81/+148
2022-11-24block: fix crash in 'blk_mq_elv_switch_none'Ye Bin1-1/+1
2022-11-22blk-mq: fix queue reference leak on blk_mq_alloc_disk_for_queue failureChristoph Hellwig1-1/+6
2022-11-22block: fix missing nr_hw_queues update in blk_mq_realloc_tag_set_tagsShin'ichiro Kawasaki1-2/+2
2022-11-10blk-mq: simplify blk_mq_realloc_tag_set_tagsChristoph Hellwig1-6/+4
2022-11-10blk-mq: remove blk_mq_alloc_tag_set_tagsChristoph Hellwig1-9/+5
2022-11-02blk-mq: use if-else instead of goto in blk_mq_alloc_cached_request()Jinlong Chen1-13/+14
2022-11-02blk-mq: improve error handling in blk_mq_alloc_rq_map()Jinlong Chen1-9/+10
2022-11-02blk-mq: add tagset quiesce interfaceChao Leng1-0/+27
2022-11-02blk-mq: pass a tagset to blk_mq_wait_quiesce_doneChristoph Hellwig1-7/+9
2022-11-02blk-mq: move the srcu_struct used for quiescing to the tagsetChristoph Hellwig1-8/+25
2022-11-02blk-mq: skip non-mq queues in blk_mq_quiesce_queueChristoph Hellwig1-1/+3
2022-11-01block: split elevator_switchChristoph Hellwig1-1/+1
2022-10-31block: blk_add_rq_to_plug(): clear stale 'last' after flushAl Viro1-0/+1
2022-10-31blk-mq: Fix kmemleak in blk_mq_init_allocated_queueChen Jun1-3/+1
2022-10-31blk-mq: remove redundant call to blk_freeze_queue_start in blk_mq_destroy_queueJinlong Chen1-1/+1
2022-10-31blk-mq: move queue_is_mq out of blk_mq_cancel_work_syncJinlong Chen1-7/+5
2022-10-31blk-mq: avoid double ->queue_rq() because of early timeoutDavid Jeffery1-12/+44
2022-10-28blk-mq: Properly init requests from blk_mq_alloc_request_hctx()John Garry1-1/+6
2022-10-25blk-mq: move the call to blk_put_queue out of blk_mq_destroy_queueChristoph Hellwig1-3/+1
2022-10-23block: fix up elevator_type refcountingJinlong Chen1-0/+2
2022-10-23block: add proper helpers for elevator_type module refcount managementChristoph Hellwig1-9/+2
2022-10-16blk-mq: fix null pointer dereference in blk_mq_clear_rq_mapping()Yu Kuai1-2/+5
2022-09-30block: allow end_io based requests in the completion batch handlingJens Axboe1-2/+11
2022-09-30block: change request end_io handler to pass back a return valueJens Axboe1-5/+9
2022-09-30block: enable batched allocation for blk_mq_alloc_request()Jens Axboe1-9/+71
2022-09-30Merge branch 'for-6.1/io_uring' into for-6.1/passthroughJens Axboe1-1/+2
2022-09-30Merge branch 'for-6.1/block' into for-6.1/passthroughJens Axboe1-13/+19
2022-09-29block: add rationale for not using blk_mq_plug() when applicablePankaj Raghav1-0/+6
2022-09-27blk-mq: use quiesced elevator switch when reinitializing queuesKeith Busch1-3/+3
2022-09-24blk-mq: don't redirect completion for hctx withs only one ctx mappingLiu Song1-3/+5
2022-09-21block: export blk_rq_is_pollKanchan Joshi1-1/+2
2022-09-05blk-mq: remove unneeded needs_restart checkMiaohe Lin1-1/+1
2022-08-22block: Change the return type of blk_mq_map_queues() into voidBart Van Assche1-6/+4
2022-08-19blk-mq: fix io hung due to missing commit_rqsYu Kuai1-2/+3
2022-08-18blk-mq: run queue no matter whether the request is the last requestYufen Yu1-1/+1
2022-08-18blk-mq: remove unused function blk_mq_queue_stopped()Yu Kuai1-20/+0
2022-08-02block: pass struct queue_limits to the bio splitting helpersChristoph Hellwig1-2/+2
2022-08-02block: change the blk_queue_bounce calling conventionChristoph Hellwig1-1/+1
2022-08-02block: change the blk_queue_split calling conventionChristoph Hellwig1-2/+2
2022-07-21blk-mq: fix error handling in __blk_mq_alloc_diskChristoph Hellwig1-1/+1
2022-07-14block: Use the new blk_opf_t typeBart Van Assche1-7/+8
2022-07-06block: simplify blk_mq_plugChristoph Hellwig1-1/+1
2022-07-06blk-mq: Drop 'reserved' arg of busy_tag_iter_fnJohn Garry1-6/+4
2022-07-06blk-mq: Drop blk_mq_ops.timeout 'reserved' argJohn Garry1-3/+3
2022-07-06blk-mq: Add a flag for reserved requestsJohn Garry1-0/+6
2022-06-28blk-mq: rename blk_mq_sysfs_{,un}registerChristoph Hellwig1-2/+2
2022-06-28block: simplify disk shutdownChristoph Hellwig1-2/+41
2022-06-27block: Always initialize bio IO priority on submitJan Kara1-0/+3
2022-06-27block: Initialize bio priority earlierJan Kara1-2/+2
2022-06-27blk-ioprio: Convert from rqos policy to direct callJan Kara1-0/+8
2022-06-27blk-mq: Don't disable preemption around __blk_mq_run_hw_queue().Sebastian Andrzej Siewior1-5/+1
2022-06-27block: Make blk_mq_get_sq_hctx() select the proper hardware queue typeBart Van Assche1-1/+1
2022-06-21block: pop cached rq before potentially blocking rq_qos_throttle()Jens Axboe1-3/+8
2022-06-16blk-mq: don't clear flush_rq from tags->rqs[]Ming Lei1-2/+3
2022-06-16blk-mq: avoid to touch q->elevator without any protectionMing Lei1-16/+2
2022-06-16blk-mq: protect q->elevator by ->sysfs_lock in blk_mq_elv_switch_noneMing Lei1-1/+3
2022-06-16block: Fix handling of offline queues in blk_mq_alloc_request_hctx()Bart Van Assche1-0/+2
2022-06-03Merge tag 'for-5.19/block-exec-2022-06-02' of git://git.kernel.dk/linux-blockLinus Torvalds1-64/+49
2022-06-03Merge tag 'for-5.19/block-2022-06-02' of git://git.kernel.dk/linux-blockLinus Torvalds1-5/+5
2022-05-30blk-mq: do not update io_ticks with passthrough requestsHaisu Wang1-1/+2
2022-05-28blk-mq: remove the done argument to blk_execute_rq_nowaitChristoph Hellwig1-4/+1
2022-05-28blk-mq: avoid a mess of casts for blk_end_sync_rqChristoph Hellwig1-23/+20
2022-05-28blk-mq: remove __blk_execute_rq_nowaitChristoph Hellwig1-39/+30
2022-05-23Merge tag 'for-5.19/block-2022-05-22' of git://git.kernel.dk/linux-blockLinus Torvalds1-1/+1
2022-05-23blk-mq: don't touch ->tagset in blk_mq_get_sq_hctxMing Lei1-4/+3
2022-05-21blk-mq: fix typo in commentJulia Lawall1-1/+1
2022-05-12blk-mq: fix passthrough pluggingMing Lei1-51/+63
2022-05-11block: wire-up support for passthrough pluggingJens Axboe1-34/+39
2022-04-27Revert "block: inherit request start time from bio for BLK_CGROUP"Tejun Heo1-8/+1
2022-04-15block: don't print I/O error warning for dead disksChristoph Hellwig1-1/+2
2022-04-01Merge tag 'for-5.18/block-2022-04-01' of git://git.kernel.dk/linux-blockLinus Torvalds1-9/+16
2022-03-31block: use dedicated list iterator variableJakob Koschel1-9/+16
2022-03-26Merge tag 'for-5.18/write-streams-2022-03-18' of git://git.kernel.dk/linux-blockLinus Torvalds1-1/+0
2022-03-21Merge tag 'for-5.18/block-2022-03-18' of git://git.kernel.dk/linux-blockLinus Torvalds1-151/+152
2022-03-11block: flush plug based on hardware and software queue orderJens Axboe1-31/+28
2022-03-08block: don't remove hctx debugfs dir from blk_mq_exit_queueMing Lei1-1/+0
2022-03-08blk-mq: handle already freed tags gracefully in blk_mq_free_rqsMing Lei1-0/+3
2022-03-08blk-mq: do not include passthrough requests in I/O accountingChristoph Hellwig1-3/+8
2022-03-08blk-mq: manage hctx map via xarrayMing Lei1-38/+24
2022-03-08blk-mq: prepare for implementing hctx table via xarrayMing Lei1-14/+16
2022-03-08blk-mq: reconfigure poll after queue map is changedMing Lei1-3/+13
2022-03-08blk-mq: simplify reallocation of hw ctxs a bitMing Lei1-19/+14
2022-03-08blk-mq: figure out correct numa node for hw queueMing Lei1-6/+30
2022-03-08block: fix blk_mq_attempt_bio_merge and rq_qos_throttle protectionShin'ichiro Kawasaki1-12/+23