Re: [PATCH] blk-mq: quiesce queue while reallocating hctxs

From: Yu Kuai
Date: Thu Mar 02 2023 - 21:21:59 EST


Hi,

在 2023/03/03 9:24, Keith Busch 写道:
On Tue, Feb 21, 2023 at 05:24:36PM +0800, Yu Kuai wrote:
From: Yu Kuai <yukuai3@xxxxxxxxxx>

commit 8237c01f1696 ("blk-mq: use quiesced elevator switch when
reinitializing queues") add quiesce queue while switching elevator,
however, if old elevator is none, queue is still not quiesced. Hence
reallocating hctxs can concurrent with run queue. Fix it by also
quiesce queue in the beginning of __blk_mq_update_nr_hw_queues().

Is this actually fixing anything? The quiesced elevator switch was to prevent
use-after-free from an elevator being torn down, but if you are not switching
elevators, then what resource does quiescing protect?
.


What I can think of is hctx itself. run queue can fetch a hctx that will
be exited, I did't found any real problems yet, but I don't think it
is not good to run work for a exited or reused hctx.

Thanks,
Kuai