[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <293c16d2-f556-4d42-ab06-2e0acf1cc601@acm.org>
Date: Tue, 24 Oct 2023 09:53:49 -0700
From: Bart Van Assche <bvanassche@....org>
To: Ming Lei <ming.lei@...hat.com>, Jens Axboe <axboe@...nel.dk>
Cc: linux-block@...r.kernel.org, Tejun Heo <tj@...nel.org>,
linux-kernel@...r.kernel.org, Juri Lelli <juri.lelli@...hat.com>,
Andrew Theurer <atheurer@...hat.com>,
Joe Mario <jmario@...hat.com>,
Sebastian Jug <sejug@...hat.com>,
Frederic Weisbecker <frederic@...nel.org>
Subject: Re: [PATCH V2] blk-mq: don't schedule block kworker on isolated CPUs
On 10/13/23 05:47, Ming Lei wrote:
> @@ -3926,6 +3941,15 @@ static void blk_mq_map_swqueue(struct request_queue *q)
> */
> sbitmap_resize(&hctx->ctx_map, hctx->nr_ctx);
>
> + /*
> + * rule out isolated CPUs from hctx->cpumask for avoiding to
> + * run wq worker on isolated CPU
> + */
> + for_each_cpu(cpu, hctx->cpumask) {
> + if (cpu_is_isolated(cpu))
> + cpumask_clear_cpu(cpu, hctx->cpumask);
> + }
What will happen if this code makes hctx->cpumask empty? Code like
blk_mq_first_mapped_cpu() and blk_mq_hctx_next_cpu() assumes that
hctx->cpumask is not empty. There may be other code that assumes that
hctx->cpumask is not empty.
Thanks,
Bart.
Powered by blists - more mailing lists