Messages in this thread | | | Date | Fri, 7 Aug 2020 18:44:16 +0100 | From | Matthew Wilcox <> | Subject | Very slow qemu device access |
| |
Everything starts going very slowly after this commit:
commit 37f4a24c2469a10a4c16c641671bd766e276cf9f (refs/bisect/bad) Author: Ming Lei <ming.lei@redhat.com> 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@redhat.com> Cc: Christoph Hellwig <hch@infradead.org> Signed-off-by: Jens Axboe <axboe@kernel.dk>
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)
| |