On Mon, Jan 25, 2021 at 08:10:16AM +0100, Hannes Reinecke wrote: > I don't get this. > This code is about _avoiding_ having to raise a softirq if the driver > exports more than one hardware queue. > So where exactly does the remote CPU case come in here? __blk_mq_complete_request_remote is only called for the case where we do not completelky locally. The case that "degrades" here is where the device supports multiple queues, but less than the number of CPUs, and we bounce the completion to another CPU.