Thread (6 messages) 6 messages, 2 authors, 2017-10-18

Re: [PATCH 0/2] block/SCSI MQ: two RESTART related patches

From: Ming Lei <hidden>
Date: 2017-10-18 01:30:43
Also in: linux-scsi, lkml

On Tue, Oct 17, 2017 at 04:47:23PM +0100, John Garry wrote:
On 17/10/2017 06:12, Ming Lei wrote:
quoted
On Tue, Oct 17, 2017 at 01:04:16PM +0800, Ming Lei wrote:
quoted
Hi Jens,

The 1st patch runs idle hctx after dealy in scsi_mq_get_budget(),
so that we can keep same behaviour with before, and it can be
thought as a fix.

The 2nd patch cleans up RESTART, and removes handling for TAG_SHARED
from current blk-mq's RESTART mechanism because SCSI_MQ can covers its
restart by itself, so that no need to handle TAG_SHARED in blk-mq
RESTART. And >20% IOPS boost is observed in my rand read test over
scsi_debug.

John, please test this two patches and see if it may improve your SAS
IO performance, and you can find the two patches in the following branch:

	https://github.com/ming1/linux/commits/blk_mq_improve_restart_V1
Hi Ming,

As requested, here's my figures for blk_mq_improve_restart_V1:
without default SCSI_MQ, deadline scheduler, CONFIG PREEMPT off
read, rw, write IOPS	
989K, 113K/113K, 835K

with default SCSI_MQ, mq-deadline scheduler, CONFIG PREEMPT off
read, rw, write IOPS	
738K, 130K/130K, 686K

For axboe for-next tip (21ed538):
without default SCSI_MQ, deadline scheduler, CONFIG PREEMPT off
read, rw, write IOPS	
977K, 117K/117K, 821K

with default SCSI_MQ, mq-deadline scheduler, CONFIG PREEMPT off
read, rw, write IOPS	
733K, 128K/128K, 676K

All cases do not have LLDD mq exposed/enabled. So unfortunately not much
difference with your branch.
That looks a bit strange, this patchset should cut half of
blk_mq_run_hw_queues() since SCSI-MQ does it by itself in
scsi_end_request().

So looks your issue is related with neither IO merge nor RESTART.
just wondering what the possible reason is?

But this patchset is still correct thing to do, even though your
issue can't be addressed.


Thanks,
Ming
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help