Re: [PATCH V2] blk-mq: don't schedule block kworker on isolated CPUs

From: Ming Lei
Date: Mon Oct 23 2023 - 19:46:11 EST


On Fri, Oct 13, 2023 at 08:47:58PM +0800, Ming Lei wrote:
> Kernel parameter of `isolcpus=` or 'nohz_full=' are used for isolating CPUs
> for specific task, and user often won't want block IO to disturb these CPUs,
> also long IO latency may be caused if blk-mq kworker is scheduled on these
> isolated CPUs.
>
> Kernel workqueue only respects this limit for WQ_UNBOUND, for bound wq,
> the responsibility should be on wq user.
>
> So don't not run block kworker on isolated CPUs by ruling out isolated CPUs
> from hctx->cpumask. Meantime in cpuhp handler, use queue map to check if
> all CPUs in this hw queue are offline, this way can avoid any cost in fast
> IO code path.
>
> Cc: Juri Lelli <juri.lelli@xxxxxxxxxx>
> Cc: Andrew Theurer <atheurer@xxxxxxxxxx>
> Cc: Joe Mario <jmario@xxxxxxxxxx>
> Cc: Sebastian Jug <sejug@xxxxxxxxxx>
> Cc: Frederic Weisbecker <frederic@xxxxxxxxxx>
> Signed-off-by: Ming Lei <ming.lei@xxxxxxxxxx>
> ---
> V2:
> - remove module parameter, meantime use queue map to check if
> all cpus in one hctx are offline

Hello Guys,

Ping...



Thanks,
Ming