aboutsummaryrefslogtreecommitdiffstats
path: root/block/blk-mq.c
AgeCommit message (Expand)AuthorFilesLines
2025-04-03block: don't grab elevator lock during queue initializationMing Lei1-7/+17
2025-04-01block: remove unused nseg parameterNitesh Shetty1-3/+2
2025-03-12block: remove unused parameterGuixin Liu1-1/+1
2025-03-10block: make sure ->nr_integrity_segments is cloned in blk_rq_prep_cloneMing Lei1-0/+1
2025-03-10block: protect hctx attributes/params using q->elevator_lockNilay Shroff1-0/+4
2025-03-10block: introduce a dedicated lock for protecting queue elevator updatesNilay Shroff1-8/+7
2025-01-31block: force noio scope in blk_mq_freeze_queueChristoph Hellwig1-8/+13
2025-01-14blk-mq: Move more error handling into blk_mq_submit_bio()Bart Van Assche1-7/+7
2025-01-14block: Reorder the request allocation code in blk_mq_submit_bio()Bart Van Assche1-3/+3
2025-01-10block: don't update BLK_FEAT_POLL in __blk_mq_update_nr_hw_queuesChristoph Hellwig1-21/+5
2025-01-10block: check BLK_FEAT_POLL under q_usage_countChristoph Hellwig1-2/+10
2025-01-06block: simplify tag allocation policy selectionChristoph Hellwig1-2/+1
2025-01-04block: remove blk_rq_bio_prepChristoph Hellwig1-1/+3
2024-12-23block: track queue dying state automatically for modeling queue freeze lockdepMing Lei1-2/+3
2024-12-23block: track disk DEAD state automatically for modeling queue freeze lockdepMing Lei1-2/+5
2024-12-23block: remove unnecessary check in blk_unfreeze_check_owner()Ming Lei1-2/+0
2024-12-18block: avoid to reuse `hctx` not removed from cpuhp callback listMing Lei1-1/+10
2024-12-18block: Revert "block: Fix potential deadlock while freezing queue and acquiri...Ming Lei1-18/+11
2024-12-13block: Fix potential deadlock while freezing queue and acquiring sysfs_lockNilay Shroff1-11/+18
2024-12-13blk-mq: Clean up blk_mq_requeue_work()Bart Van Assche1-6/+4
2024-12-06blk-mq: move cpuhp callback registering out of q->sysfs_lockMing Lei1-11/+92
2024-12-06blk-mq: register cpuhp callback after hctx is added to xarray tableMing Lei1-8/+7
2024-11-25block: Remove extra part pointer NULLify in blk_rq_init()John Garry1-1/+0
2024-11-19block: blk-mq: fix uninit-value in blk_rq_prep_clone and refactorSuraj Sonawane1-7/+6
2024-11-13block: don't reorder requests in blk_add_rq_to_plugChristoph Hellwig1-2/+2
2024-11-13block: add a rq_list typeChristoph Hellwig1-21/+19
2024-11-12block: remove the ioprio field from struct requestChristoph Hellwig1-2/+1
2024-11-12block: remove the write_hint field from struct requestChristoph Hellwig1-2/+0
2024-11-07block: always verify unfreeze lock on the owner taskMing Lei1-8/+54
2024-11-07block: remove blk_freeze_queue()Ming Lei1-21/+1
2024-10-26block: model freeze & enter queue as lock for supporting lockdepMing Lei1-4/+22
2024-10-26blk-mq: add non_owner variant of start_freeze/unfreeze queue APIsMing Lei1-0/+20
2024-10-23blk-mq: Unexport blk_mq_flush_busy_ctxs()Bart Van Assche1-1/+0
2024-10-22blk-mq: Make blk_mq_quiesce_tagset() hold the tag list mutex less longBart Van Assche1-1/+2
2024-10-22block: fix ordering between checking BLK_MQ_S_STOPPED request addingMuchun Song1-0/+6
2024-10-22block: fix ordering between checking QUEUE_FLAG_QUIESCED request addingMuchun Song1-13/+34
2024-10-22block: fix missing dispatching request when queue is started or unquiescedMuchun Song1-0/+2
2024-10-22block: enable passthrough command statisticsKeith Busch1-1/+31
2024-10-22block: move issue side time stamping to blk_account_io_start()Jens Axboe1-8/+4
2024-10-22block: set issue time stamp based on queue stateJens Axboe1-1/+1
2024-10-22block: kill blk_do_io_stat() helperJens Axboe1-3/+3
2024-10-22block: remove 'req->part' check for stats accountingJens Axboe1-4/+3
2024-10-22block: move iostat check into blk_acount_io_start()Jens Axboe1-19/+21
2024-10-14blk-mq: setup queue ->tag_set before initializing hctxMing Lei1-2/+6
2024-09-25Merge tag 'for-6.12/block-20240925' of git://git.kernel.dk/linuxLinus Torvalds1-2/+3
2024-09-17Merge tag 'irq-core-2024-09-16' of git://git.kernel.org/pub/scm/linux/kernel/...Linus Torvalds1-1/+1
2024-09-13blk-mq: set the nr_integrity_segments from bioKeith Busch1-0/+3
2024-09-13blk-mq: unconditional nr_integrity_segmentsKeith Busch1-2/+0
2024-09-07blk-mq: add missing unplug trace eventKeith Busch1-0/+3
2024-08-29block: rework bio splittingChristoph Hellwig1-6/+5
2024-08-20softirq: Remove unused 'action' parameter from action callbackCaleb Sander Mateos1-1/+1
2024-07-02block: Call .limit_depth() after .hctx has been setBart Van Assche1-6/+6
2024-06-28block: check bio alignment in blk_mq_submit_bioMing Lei1-0/+20
2024-06-20block: Pass blk_queue_get_max_sectors() a request pointerJohn Garry1-1/+1
2024-06-19block: move the poll flag to queue_limitsChristoph Hellwig1-13/+18
2024-06-19block: move the nowait flag to queue_limitsChristoph Hellwig1-1/+1
2024-06-19block: move the io_stat flag setting to queue_limitsChristoph Hellwig1-1/+5
2024-06-19block: freeze the queue in queue_attr_storeChristoph Hellwig1-2/+3
2024-06-14block: remove the blk_integrity_profile structureChristoph Hellwig1-9/+4
2024-05-23Merge tag 'block-6.10-20240523' of git://git.kernel.dk/linuxLinus Torvalds1-2/+18
2024-05-21Merge tag 'pull-bd_flags-2' of git://git.kernel.org/pub/scm/linux/kernel/git/...Linus Torvalds1-1/+1
2024-05-17blk-mq: add helper for checking if one CPU is mapped to specified hctxMing Lei1-2/+18
2024-05-09block: support to account io_ticks preciselyYu Kuai1-0/+4
2024-05-02Use bdev_is_paritition() instead of open-coding itAl Viro1-1/+1
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