Everything starts going very slowly after this commit: commit 37f4a24c2469a10a4c16c641671bd766e276cf9f (refs/bisect/bad) Author: Ming Lei <ming.lei@xxxxxxxxxx> Date: Tue Jun 30 22:03:57 2020 +0800 blk-mq: centralise related handling into blk_mq_get_driver_tag Move .nr_active update and request assignment into blk_mq_get_driver_tag(), all are good to do during getting driver tag. Meantime blk-flush related code is simplified and flush request needn't to update the request table manually any more. Signed-off-by: Ming Lei <ming.lei@xxxxxxxxxx> Cc: Christoph Hellwig <hch@xxxxxxxxxxxxx> Signed-off-by: Jens Axboe <axboe@xxxxxxxxx> By the time xfstests gets to generic/007, things are blocking trying to get tags: root@bobo-kvm:~# cat /proc/9530/stack [<0>] blk_mq_get_tag+0x109/0x250 [<0>] __blk_mq_alloc_request+0x67/0xf0 [<0>] blk_mq_submit_bio+0xee/0x560 [<0>] submit_bio_noacct+0x3a3/0x410 [<0>] submit_bio+0x33/0xf0 [<0>] submit_bh_wbc.isra.0+0x139/0x160 [<0>] block_read_full_page+0x357/0x4a0 [<0>] blkdev_readpage+0x13/0x20 [<0>] do_read_cache_page+0x557/0x860 ... maybe tags aren't getting freed properly? Or things aren't being woken up promptly? (that trace is from current linus head; i bisected back to this commit)