Re: [PATCH 2/3] blk-mq: Always complete remote completions requests in softirq

From: Sebastian Andrzej Siewior
Date: Tue Jan 26 2021 - 00:25:19 EST


On 2021-01-25 08:25:42 [+0000], Christoph Hellwig wrote:
> 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.

Does it really "degrade" or just use the softirq more often? The usual
case is run the softirqs in irq_exit() which is just after IPI.

Sebastian