Messages in this thread | | | Subject | Re: [PATCH v4 12/14] blk-mq: remove set of bd->last when get driver tag for next request fails | From | Kemeng Shi <> | Date | Sat, 28 Jan 2023 10:03:43 +0800 |
| |
on 1/19/2023 9:45 AM, Kemeng Shi wrote: > > > on 1/19/2023 1:42 AM, Christoph Hellwig wrote: >> On Wed, Jan 18, 2023 at 05:37:24PM +0800, Kemeng Shi wrote: >>> Commit 113285b473824 ("blk-mq: ensure that bd->last is always set >>> correctly") will set last if we failed to get driver tag for next >>> request to avoid flush miss as we break the list walk and will not >>> send the last request in the list which will be sent with last set >>> normally. >>> This code seems stale now becase the flush introduced is always >>> redundant as: >>> For case tag is really out, we will send a extra flush if we find >>> list is not empty after list walk. >>> For case some tag is freed before retry in blk_mq_prep_dispatch_rq for >>> next, then we can get a tag for next request in retry and flush notified >>> already is not necessary. >> >> I think Ming will know this code better than me, but aren't we >> losing the blk_mq_get_driver_tag call entirely here now. Where >> is getting the driver tag covered now? >> > We will get driver tag in blk_mq_prep_dispatch_rq at beginning of dispatch > loop, so it's fine to remove blk_mq_get_driver_tag here. Thanks. >
Hi Ming and everyone familiar with code invovled, could you help with reviewing this patch and patch "[PATCH v4 04/14] blk-mq: Fix potential io hung for shared sbitmap per tagset" in the same patchset. Thanks.
-- Best wishes Kemeng Shi
| |