[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20210125083029.utnjqs2s3diqb5vx@linutronix.de>
Date: Mon, 25 Jan 2021 09:30:29 +0100
From: Sebastian Andrzej Siewior <bigeasy@...utronix.de>
To: Christoph Hellwig <hch@...radead.org>
Cc: Hannes Reinecke <hare@...e.de>, linux-block@...r.kernel.org,
linux-kernel@...r.kernel.org, Jens Axboe <axboe@...nel.dk>,
Thomas Gleixner <tglx@...utronix.de>,
Peter Zijlstra <peterz@...radead.org>,
Ingo Molnar <mingo@...nel.org>
Subject: Re: [PATCH 2/3] blk-mq: Always complete remote completions requests
in softirq
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
Powered by blists - more mailing lists