On Mon, Aug 10, 2020 at 11:10:49AM +0800, Ming Lei wrote: > On Sun, Aug 09, 2020 at 03:25:22PM +0100, Matthew Wilcox wrote: > > On Sun, Aug 09, 2020 at 10:40:05AM +0800, Ming Lei wrote: > > > Hello Matthew, > > > > > > On Fri, Aug 07, 2020 at 06:44:16PM +0100, Matthew Wilcox wrote: > > > > > > > > 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 > > > > > > Yeah, the above is one known bad commit, which is reverted in > > > 4e2f62e566b5 ("Revert "blk-mq: put driver tag when this request is completed") > > > > > > Finally the fixed patch of 'blk-mq: centralise related handling into blk_mq_get_driver_tag' > > > is merged as 568f27006577 ("blk-mq: centralise related handling into blk_mq_get_driver_tag"). > > > > > > So please test either 4e2f62e566b5 or 568f27006577 and see if there is > > > such issue. > > > > 4e2f62e566b5 is good > > 568f27006577 is bad > > Please try the following patch, and we shouldn't take flush request > account into driver tag allocation, because it always shares the > data request's tag: > > >From d508415eee08940ff9c78efe0eddddf594afdb94 Mon Sep 17 00:00:00 2001 > From: Ming Lei <ming.lei@xxxxxxxxxx> > Date: Mon, 10 Aug 2020 11:06:15 +0800 > Subject: [PATCH] block: don't double account of flush request's driver tag > > In case of none scheduler, we share data request's driver tag for > flush request, so have to mark the flush request as INFLIGHT for > avoiding double account of this driver tag. Yes, this fixes the problem. Thanks!