On 04/06/2019 09:49, John Garry wrote:
On 31/05/2019 03:27, Ming Lei wrote:
Hi,
Hi Ming,
I'm raising the hostwide tags issue again, which I brought up in
https://www.spinics.net/lists/linux-block/msg43754.html
Here's that discussion:
>> I don't mean to hijack this thread, but JFYI we're getting around to
test
>> https://github.com/ming1/linux/commits/v5.2-rc-host-tags-V2 -
unfortunately
>> we're still seeing a performance regression. I can't see where it's
coming
>> from. We're double-checking the test though.
>
> host-tag patchset is only for several particular drivers which use
> private reply queue as completion queue.
>
> This patchset is for handling generic blk-mq CPU hotplug issue, and
> the several particular scsi drivers(hisi_sas_v3, hpsa, megaraid_sas and
> mp3sas) won't be covered so far.
>
> I'd suggest to move on for generic blk-mq devices first given now blk-mq
> is the only request IO path now.
>
> There are at least two choices for us to handle drivers/devices with
> private completion queue:
>
> 1) host-tags
> - performance issue shouldn't be hard to solve, given it is same with
> with single tags in theory, and just corner cases is there.
>
> What I am not glad with this approach is that blk-mq-tag code becomes
mess.
Right, not so neat. And we see a 3M vs 2.4M IOPS drop with this
patchset. That's without any optimisation like discussed in
https://lkml.org/lkml/2019/8/10/124
And I don't know about any impact of performance of hosts which already
exposed multiple queues.
Note that it's still much better than the 700K IOPS we see without
managed interrupts at all.
>
> 2) private callback
> - we could define private callback to drain each completion queue in
> driver simply.
Yeah, but then we raise the question of why the LLDD can't just register
for hotplug handler itself.
Personally I prefer #1. I'll have a look at the issues when I get a chance.
Much appreciated,
John