On Wed, Jun 22, 2022 at 10:25:54AM +0200, Sebastian Andrzej Siewior wrote: > __blk_mq_delay_run_hw_queue() disables preemption to get a stable > current CPU number and then invokes __blk_mq_run_hw_queue() if the CPU > number is part the mask. > > __blk_mq_run_hw_queue() acquires a spin_lock_t which is a sleeping lock > on PREEMPT_RT and can't be acquired with disabled preemption. > > It is not required for correctness to invoke __blk_mq_run_hw_queue() on > a CPU matching hctx->cpumask. Both (async and direct requests) can run > on a CPU not matching hctx->cpumask. > > The CPU mask without disabling preemption and invoking > __blk_mq_run_hw_queue(). > > Signed-off-by: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> Looks fine: Reviewed-by: Ming Lei <ming.lei@xxxxxxxxxx> Thanks, Ming