On 02/23/24 08:09, Bart Van Assche wrote: > On 2/23/24 07:57, Qais Yousef wrote: > > diff --git a/block/blk-mq.c b/block/blk-mq.c > > index 2dc01551e27c..ea69047e12f7 100644 > > --- a/block/blk-mq.c > > +++ b/block/blk-mq.c > > @@ -1167,10 +1167,11 @@ static inline bool blk_mq_complete_need_ipi(struct request *rq) > > if (force_irqthreads()) > > return false; > > - /* same CPU or cache domain? Complete locally */ > > + /* same CPU or cache domain and capacity? Complete locally */ > > if (cpu == rq->mq_ctx->cpu || > > (!test_bit(QUEUE_FLAG_SAME_FORCE, &rq->q->queue_flags) && > > - cpus_share_cache(cpu, rq->mq_ctx->cpu))) > > + cpus_share_cache(cpu, rq->mq_ctx->cpu) && > > + cpus_equal_capacity(cpu, rq->mq_ctx->cpu))) > > return false; > > /* don't try to IPI to an offline CPU */ > > I think it's worth mentioning that this change is intended for storage > controllers that only support a single completion interrupt. Anyway: Sorry I didn't realize it is only applied for this scenario. > > Reviewed-by: Bart Van Assche <bvanassche@xxxxxxx> Thanks for the reviews!