Re: [PATCH] scsi: default to scsi-mq

2017-07-18 Thread Jonathan Cameron
On Tue, 18 Jul 2017 23:58:03 +0800
Jonathan Cameron  wrote:

> On Fri, 14 Jul 2017 14:45:39 +0200
> "h...@lst.de"  wrote:
> 
> > On Fri, Jul 14, 2017 at 05:56:41PM +0800, Jonathan Cameron wrote:  
> > > Just wondering if you had any thoughts on how we can proceed with tracking
> > > down this regression?
> > > 
> > > I'm not familiar enough with the multiqueue code to really know where
> > > to start.
> > > 
> > > If there are any other tests that would be of use, let us know.
> > 
> > Can you send the blktrace and perf output for each of the runs?
> > 
> > Thanks!  
> 
> Hi 
> 
> Sorry for the delay,

For perf what in particular would be of use?

Thanks,

Jonathan
> 
> blktrace for now (or at least the btt output based on blktrace).
> All runs are 1 minute of fio with reads and iodepth of 2048 as
> before. Just the summaries to keep this compact.  Also 6 disks
> were running but results just presented for first one.
> 
> mq disabled, noop scheduler
> 
>  All Devices 
> 
> ALL   MIN   AVG   MAX   N
> --- - - - ---
> 
> Q2Q   0.03960   0.08760   0.016291960 6849306
> Q2G   0.00780   0.01547   0.011354860 1420699
> G2I   0.00660   0.00975   0.011092540 1420699
> Q2M   0.00340   0.00431   0.003383260 5428608
> I2D   0.00440   0.000196038   0.023731660 1420699
> M2D   0.00480   0.001475398   0.023726860 5428608
> D2C   0.22420   0.002887338   0.026416340 6849307
> Q2C   0.25360   0.004098233   0.035045140 6849307
> 
>  Device Overhead 
> 
>DEV |   Q2G   G2I   Q2M   I2D   D2C
> -- | - - - - -
>  (  8,  0) |   0.0078%   0.0049%   0.0083%   0.9922%  70.4532%
> -- | - - - - -
>Overall |   0.0078%   0.0049%   0.0083%   0.9922%  70.4532%
> 
>  Device Merge Information 
> 
>DEV |   #Q   #D   Ratio |   BLKmin   BLKavg   BLKmaxTotal
> -- |   --- |    
>  (  8,  0) |  6849307  1420699 4.8 |8   38  256 54794456
> 
>  Device Q2Q Seek Information 
> 
>DEV |  NSEEKSMEAN  MEDIAN | MODE   
> -- | --- --- --- | ---
>  (  8,  0) | 6849307 0.0   0 | 0(6849307)
> -- | --- --- --- | ---
>Overall |  NSEEKSMEAN  MEDIAN | MODE   
>Average | 6849307 0.0   0 | 0(6849307)
> 
>  Device D2D Seek Information 
> 
>DEV |  NSEEKSMEAN  MEDIAN | MODE   
> -- | --- --- --- | ---
>  (  8,  0) | 1420699 0.0   0 | 0(1420699)
> -- | --- --- --- | ---
>Overall |  NSEEKSMEAN  MEDIAN | MODE   
>Average | 1420699 0.0   0 | 0(1420699)
> 
>  Plug Information 
> 
>   DEV |# Plugs # Timer Us  | % Time Q Plugged
> -- | -- --  | 
>  (  8,  0) |1420699( 0) |   2.231949107%
> 
>DEV |IOs/Unp   IOs/Unp(to)
> -- | --   --
>  (  8,  0) |1.0  0.0
> -- | --   --
>Overall |IOs/Unp   IOs/Unp(to)
>Average |1.0  0.0
> 
>  Active Requests At Q Information 
> 
>DEV |  Avg Reqs @ Q
> -- | -
>  (  8,  0) |   5.9
> 
>  I/O Active Period Information 
> 
>DEV | # Live  Avg. Act Avg. !Act % Live
> -- | -- - - --
>  (  8,  0) |340   0.175645918   0.001273008  99.28
> -- | -- - - --
>  Total Sys |340   0.175645918   0.001273008  99.28
> 
> # Total System
> # Total System : q activity
>   0.145330280   0.0
>   0.145330280   0.4
>  60.145690780   0.4
>  60.145690780   0.0
> 
> # Total System : c activity
>   0.145450660   0.5
>   0.145450660   0.9
>  60.151161760   0.9
>  60.151161760   0.5
> 
> 
> MQ none scheduler
> 
>  All Devices 

Re: [PATCH] scsi: default to scsi-mq

2017-07-18 Thread Jonathan Cameron
On Fri, 14 Jul 2017 14:45:39 +0200
"h...@lst.de"  wrote:

> On Fri, Jul 14, 2017 at 05:56:41PM +0800, Jonathan Cameron wrote:
> > Just wondering if you had any thoughts on how we can proceed with tracking
> > down this regression?
> > 
> > I'm not familiar enough with the multiqueue code to really know where
> > to start.
> > 
> > If there are any other tests that would be of use, let us know.  
> 
> Can you send the blktrace and perf output for each of the runs?
> 
> Thanks!

Hi 

Sorry for the delay,

blktrace for now (or at least the btt output based on blktrace).
All runs are 1 minute of fio with reads and iodepth of 2048 as
before. Just the summaries to keep this compact.  Also 6 disks
were running but results just presented for first one.

mq disabled, noop scheduler

 All Devices 

ALL   MIN   AVG   MAX   N
--- - - - ---

Q2Q   0.03960   0.08760   0.016291960 6849306
Q2G   0.00780   0.01547   0.011354860 1420699
G2I   0.00660   0.00975   0.011092540 1420699
Q2M   0.00340   0.00431   0.003383260 5428608
I2D   0.00440   0.000196038   0.023731660 1420699
M2D   0.00480   0.001475398   0.023726860 5428608
D2C   0.22420   0.002887338   0.026416340 6849307
Q2C   0.25360   0.004098233   0.035045140 6849307

 Device Overhead 

   DEV |   Q2G   G2I   Q2M   I2D   D2C
-- | - - - - -
 (  8,  0) |   0.0078%   0.0049%   0.0083%   0.9922%  70.4532%
-- | - - - - -
   Overall |   0.0078%   0.0049%   0.0083%   0.9922%  70.4532%

 Device Merge Information 

   DEV |   #Q   #D   Ratio |   BLKmin   BLKavg   BLKmaxTotal
-- |   --- |    
 (  8,  0) |  6849307  1420699 4.8 |8   38  256 54794456

 Device Q2Q Seek Information 

   DEV |  NSEEKSMEAN  MEDIAN | MODE   
-- | --- --- --- | ---
 (  8,  0) | 6849307 0.0   0 | 0(6849307)
-- | --- --- --- | ---
   Overall |  NSEEKSMEAN  MEDIAN | MODE   
   Average | 6849307 0.0   0 | 0(6849307)

 Device D2D Seek Information 

   DEV |  NSEEKSMEAN  MEDIAN | MODE   
-- | --- --- --- | ---
 (  8,  0) | 1420699 0.0   0 | 0(1420699)
-- | --- --- --- | ---
   Overall |  NSEEKSMEAN  MEDIAN | MODE   
   Average | 1420699 0.0   0 | 0(1420699)

 Plug Information 

DEV |# Plugs # Timer Us  | % Time Q Plugged
-- | -- --  | 
 (  8,  0) |1420699( 0) |   2.231949107%

   DEV |IOs/Unp   IOs/Unp(to)
-- | --   --
 (  8,  0) |1.0  0.0
-- | --   --
   Overall |IOs/Unp   IOs/Unp(to)
   Average |1.0  0.0

 Active Requests At Q Information 

   DEV |  Avg Reqs @ Q
-- | -
 (  8,  0) |   5.9

 I/O Active Period Information 

   DEV | # Live  Avg. Act Avg. !Act % Live
-- | -- - - --
 (  8,  0) |340   0.175645918   0.001273008  99.28
-- | -- - - --
 Total Sys |340   0.175645918   0.001273008  99.28

# Total System
# Total System : q activity
  0.145330280   0.0
  0.145330280   0.4
 60.145690780   0.4
 60.145690780   0.0

# Total System : c activity
  0.145450660   0.5
  0.145450660   0.9
 60.151161760   0.9
 60.151161760   0.5


MQ none scheduler

 All Devices 

ALL   MIN   AVG   MAX   N
--- - - - ---

Q2Q   0.04000   0.10185   0.011803940 5890750
Q2G   0.00320   0.00763   0.011078580 1831198
G2I   0.01080   0.01682   0.010839860 1831198
Q2M   0.00340   

Re: [PATCH] scsi: default to scsi-mq

2017-07-14 Thread h...@lst.de
On Fri, Jul 14, 2017 at 05:56:41PM +0800, Jonathan Cameron wrote:
> Just wondering if you had any thoughts on how we can proceed with tracking
> down this regression?
> 
> I'm not familiar enough with the multiqueue code to really know where
> to start.
> 
> If there are any other tests that would be of use, let us know.

Can you send the blktrace and perf output for each of the runs?

Thanks!


Re: [PATCH] scsi: default to scsi-mq

2017-07-14 Thread Jonathan Cameron
On Wed, 12 Jul 2017 23:54:01 +0800
Jonathan Cameron  wrote:

> On Wed, 12 Jul 2017 14:18:14 +
> Bart Van Assche  wrote:
> 
> > On Wed, 2017-07-12 at 09:26 +0100, John Garry wrote:  
> > > > > What block driver controls the block device for which the performance
> > > > > regression
> > > > > has been observed? How many hardware queues were created by that block
> > > > > driver
> > > > > (see also /sys/block/*/mq/...)?
> > > 
> > > Just confirming that we have only 1 queue:
> > > /sys/block/sdc/mq/0 as example
> > 
> > Hello John,
> > 
> > Can you also check the I/O scheduler that has been selected?
> > 
> > Thanks,
> > 
> > Bart.  
> Hi Bart,
> 
> Original numbers were with deadline-mq (not deliberately specified - so the
> default for this setup)  To flesh them out a bit I've
> run the equivalent test with all the options on today's linux next.
> 
> iodepth=2048, 4k blocks read only 6 disks 6 processes.
> 
> SMMU disabled for now due to ongoing work to reduce it's impact.
> 
> none : 716k IOPS
> mq-deadline : 305k IOPS
> kyber: 321k IOPS
> 
> noop, scsi_mq disable using the kernel commandline option: 937k IOPS
> 
> Thanks,
> 
> Jonathan
> 

Hi Bart,

Just wondering if you had any thoughts on how we can proceed with tracking
down this regression?

I'm not familiar enough with the multiqueue code to really know where
to start.

If there are any other tests that would be of use, let us know.

Thanks for your help on this!

Jonathan



Re: [PATCH] scsi: default to scsi-mq

2017-07-12 Thread Jonathan Cameron
On Wed, 12 Jul 2017 14:18:14 +
Bart Van Assche  wrote:

> On Wed, 2017-07-12 at 09:26 +0100, John Garry wrote:
> > > > What block driver controls the block device for which the performance
> > > > regression
> > > > has been observed? How many hardware queues were created by that block
> > > > driver
> > > > (see also /sys/block/*/mq/...)?  
> > 
> > Just confirming that we have only 1 queue:
> > /sys/block/sdc/mq/0 as example  
> 
> Hello John,
> 
> Can you also check the I/O scheduler that has been selected?
> 
> Thanks,
> 
> Bart.
Hi Bart,

Original numbers were with deadline-mq (not deliberately specified - so the
default for this setup)  To flesh them out a bit I've
run the equivalent test with all the options on today's linux next.

iodepth=2048, 4k blocks read only 6 disks 6 processes.

SMMU disabled for now due to ongoing work to reduce it's impact.

none : 716k IOPS
mq-deadline : 305k IOPS
kyber: 321k IOPS

noop, scsi_mq disable using the kernel commandline option: 937k IOPS

Thanks,

Jonathan



Re: [PATCH] scsi: default to scsi-mq

2017-07-12 Thread Bart Van Assche
On Wed, 2017-07-12 at 09:26 +0100, John Garry wrote:
> > > What block driver controls the block device for which the performance
> > > regression
> > > has been observed? How many hardware queues were created by that block
> > > driver
> > > (see also /sys/block/*/mq/...)?
> 
> Just confirming that we have only 1 queue:
> /sys/block/sdc/mq/0 as example

Hello John,

Can you also check the I/O scheduler that has been selected?

Thanks,

Bart.

Re: [PATCH] scsi: default to scsi-mq

2017-07-12 Thread John Garry

What block driver controls the block device for which the performance
regression
has been observed? How many hardware queues were created by that block
driver
(see also /sys/block/*/mq/...)?




Just confirming that we have only 1 queue:
/sys/block/sdc/mq/0 as example


Hi Bart,

Here's the shost init for our SCSI LLDD:
http://elixir.free-electrons.com/linux/latest/source/drivers/scsi/hisi_sas/hisi_sas_main.c#L1736


So we don't set hr_hw_queues (which would mean = 0), so this should set
shost->tag_set.nr_hw_queues to 1 in scsi_mq_setup_tags().

FWIW, I can confirm sysfs entry when I get hw access tomorrow.

John

I'm asking this because the number of hardware

queues controls which I/O scheduler is selected as default. From
block/elevator.c:






if (q->mq_ops) {
if (q->nr_hw_queues == 1)
e = elevator_get("mq-deadline", false);
if (!e)
return 0;
} else
e = elevator_get(CONFIG_DEFAULT_IOSCHED, false);

Bart.




___
linuxarm mailing list
linux...@huawei.com
http://rnd-openeuler.huawei.com/mailman/listinfo/linuxarm

.






Re: [PATCH] scsi: default to scsi-mq

2017-07-11 Thread John Garry

On 11/07/2017 16:46, Bart Van Assche wrote:

On Tue, 2017-07-11 at 15:14 +0100, John Garry wrote:

On 11/07/2017 14:32, Bart Van Assche wrote:

On Tue, 2017-07-11 at 11:22 +0100, John Garry wrote:

On 10/07/2017 16:50, Bart Van Assche wrote:

Since a fix for the performance regression triggered by this patch will be 
upstream
soon (see also 
https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git/commit/?h=for-linus=32825c45ff8f4cce937ab85b030dc693ceb1aa0a):



FYI, on linux-next 20170711 (which now includes the above patch Bart
mentioned) we see a large performance regression on hisi_sas (LLDD does
not config shost for mq).

fio read mode iops goes from ~833K (scsi_mod.use_blk_mq=n on cmdline) to
~320K


Hello John,

Thanks for the feedback. Is the kernel config with which these measurements
were performed available somewhere?


It is the default arm64 defconfig with the following changes:
CONFIG_ARM_SMMU_V3=n
CONFIG_9P_FS=n

We were getting a compile error in the 9p fs code, so disabled it.
Turning on the IOMMU drops performance across the board for our
platform, so just disabling it for the test.


Hello John,

What block driver controls the block device for which the performance regression
has been observed? How many hardware queues were created by that block driver
(see also /sys/block/*/mq/...)?


Hi Bart,

Here's the shost init for our SCSI LLDD:
http://elixir.free-electrons.com/linux/latest/source/drivers/scsi/hisi_sas/hisi_sas_main.c#L1736

So we don't set hr_hw_queues (which would mean = 0), so this should set 
shost->tag_set.nr_hw_queues to 1 in scsi_mq_setup_tags().


FWIW, I can confirm sysfs entry when I get hw access tomorrow.

John

I'm asking this because the number of hardware

queues controls which I/O scheduler is selected as default. From 
block/elevator.c:






if (q->mq_ops) {
if (q->nr_hw_queues == 1)
e = elevator_get("mq-deadline", false);
if (!e)
return 0;
} else
e = elevator_get(CONFIG_DEFAULT_IOSCHED, false);

Bart.






Re: [PATCH] scsi: default to scsi-mq

2017-07-11 Thread Bart Van Assche
On Tue, 2017-07-11 at 15:14 +0100, John Garry wrote:
> On 11/07/2017 14:32, Bart Van Assche wrote:
> > On Tue, 2017-07-11 at 11:22 +0100, John Garry wrote:
> > > On 10/07/2017 16:50, Bart Van Assche wrote:
> > > > Since a fix for the performance regression triggered by this patch will 
> > > > be upstream
> > > > soon (see also 
> > > > https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git/commit/?h=for-linus=32825c45ff8f4cce937ab85b030dc693ceb1aa0a):
> > > > 
> > > 
> > > FYI, on linux-next 20170711 (which now includes the above patch Bart
> > > mentioned) we see a large performance regression on hisi_sas (LLDD does
> > > not config shost for mq).
> > > 
> > > fio read mode iops goes from ~833K (scsi_mod.use_blk_mq=n on cmdline) to
> > > ~320K
> > 
> > Hello John,
> > 
> > Thanks for the feedback. Is the kernel config with which these measurements
> > were performed available somewhere?
> 
> It is the default arm64 defconfig with the following changes:
> CONFIG_ARM_SMMU_V3=n
> CONFIG_9P_FS=n
> 
> We were getting a compile error in the 9p fs code, so disabled it. 
> Turning on the IOMMU drops performance across the board for our 
> platform, so just disabling it for the test.

Hello John,

What block driver controls the block device for which the performance regression
has been observed? How many hardware queues were created by that block driver
(see also /sys/block/*/mq/...)? I'm asking this because the number of hardware
queues controls which I/O scheduler is selected as default. From 
block/elevator.c:

if (q->mq_ops) {
if (q->nr_hw_queues == 1)
e = elevator_get("mq-deadline", false);
if (!e)
return 0;
} else
e = elevator_get(CONFIG_DEFAULT_IOSCHED, false);

Bart.

Re: [PATCH] scsi: default to scsi-mq

2017-07-11 Thread John Garry

On 11/07/2017 14:32, Bart Van Assche wrote:

On Tue, 2017-07-11 at 11:22 +0100, John Garry wrote:

On 10/07/2017 16:50, Bart Van Assche wrote:

Since a fix for the performance regression triggered by this patch will be 
upstream
soon (see also 
https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git/commit/?h=for-linus=32825c45ff8f4cce937ab85b030dc693ceb1aa0a):



FYI, on linux-next 20170711 (which now includes the above patch Bart
mentioned) we see a large performance regression on hisi_sas (LLDD does
not config shost for mq).

fio read mode iops goes from ~833K (scsi_mod.use_blk_mq=n on cmdline) to
~320K


Hello John,

Thanks for the feedback. Is the kernel config with which these measurements
were performed available somewhere?


Hi Bart,

It is the default arm64 defconfig with the following changes:
CONFIG_ARM_SMMU_V3=n
CONFIG_9P_FS=n

We were getting a compile error in the 9p fs code, so disabled it. 
Turning on the IOMMU drops performance across the board for our 
platform, so just disabling it for the test.


John



Bart.





config.tar.gz
Description: application/gzip


Re: [PATCH] scsi: default to scsi-mq

2017-07-11 Thread Bart Van Assche
On Tue, 2017-07-11 at 11:22 +0100, John Garry wrote:
> On 10/07/2017 16:50, Bart Van Assche wrote:
> > Since a fix for the performance regression triggered by this patch will be 
> > upstream
> > soon (see also 
> > https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git/commit/?h=for-linus=32825c45ff8f4cce937ab85b030dc693ceb1aa0a):
> > 
> 
> FYI, on linux-next 20170711 (which now includes the above patch Bart 
> mentioned) we see a large performance regression on hisi_sas (LLDD does 
> not config shost for mq).
> 
> fio read mode iops goes from ~833K (scsi_mod.use_blk_mq=n on cmdline) to 
> ~320K

Hello John,

Thanks for the feedback. Is the kernel config with which these measurements
were performed available somewhere?

Bart.

Re: [PATCH] scsi: default to scsi-mq

2017-07-11 Thread John Garry

On 10/07/2017 16:50, Bart Van Assche wrote:

On Fri, 2017-06-16 at 10:27 +0200, Christoph Hellwig wrote:

Remove the SCSI_MQ_DEFAULT config option and default to the blk-mq I/O
path now that we had plenty of testing, and have I/O schedulers for
blk-mq.  The module option to disable the blk-mq path is kept around
for now.

Signed-off-by: Christoph Hellwig 
---
 drivers/scsi/Kconfig | 11 ---
 drivers/scsi/scsi.c  |  4 
 2 files changed, 15 deletions(-)

diff --git a/drivers/scsi/Kconfig b/drivers/scsi/Kconfig
index 3c52867dfe28..d384f4f86c26 100644
--- a/drivers/scsi/Kconfig
+++ b/drivers/scsi/Kconfig
@@ -47,17 +47,6 @@ config SCSI_NETLINK
default n
depends on NET

-config SCSI_MQ_DEFAULT
-   bool "SCSI: use blk-mq I/O path by default"
-   depends on SCSI
-   ---help---
- This option enables the new blk-mq based I/O path for SCSI
- devices by default.  With the option the scsi_mod.use_blk_mq
- module/boot option defaults to Y, without it to N, but it can
- still be overridden either way.
-
- If unsure say N.
-
 config SCSI_PROC_FS
bool "legacy /proc/scsi/ support"
depends on SCSI && PROC_FS
diff --git a/drivers/scsi/scsi.c b/drivers/scsi/scsi.c
index 1bf274e3b2b6..3d38c6d463b8 100644
--- a/drivers/scsi/scsi.c
+++ b/drivers/scsi/scsi.c
@@ -800,11 +800,7 @@ MODULE_LICENSE("GPL");
 module_param(scsi_logging_level, int, S_IRUGO|S_IWUSR);
 MODULE_PARM_DESC(scsi_logging_level, "a bit mask of logging levels");

-#ifdef CONFIG_SCSI_MQ_DEFAULT
 bool scsi_use_blk_mq = true;
-#else
-bool scsi_use_blk_mq = false;
-#endif
 module_param_named(use_blk_mq, scsi_use_blk_mq, bool, S_IWUSR | S_IRUGO);

 static int __init init_scsi(void)


Since a fix for the performance regression triggered by this patch will be 
upstream
soon (see also 
https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git/commit/?h=for-linus=32825c45ff8f4cce937ab85b030dc693ceb1aa0a):



FYI, on linux-next 20170711 (which now includes the above patch Bart 
mentioned) we see a large performance regression on hisi_sas (LLDD does 
not config shost for mq).


fio read mode iops goes from ~833K (scsi_mod.use_blk_mq=n on cmdline) to 
~320K


John


Acked-by: Bart Van Assche 









Re: [PATCH] scsi: default to scsi-mq

2017-07-10 Thread Bart Van Assche
On Fri, 2017-06-16 at 10:27 +0200, Christoph Hellwig wrote:
> Remove the SCSI_MQ_DEFAULT config option and default to the blk-mq I/O
> path now that we had plenty of testing, and have I/O schedulers for
> blk-mq.  The module option to disable the blk-mq path is kept around
> for now.
> 
> Signed-off-by: Christoph Hellwig 
> ---
>  drivers/scsi/Kconfig | 11 ---
>  drivers/scsi/scsi.c  |  4 
>  2 files changed, 15 deletions(-)
> 
> diff --git a/drivers/scsi/Kconfig b/drivers/scsi/Kconfig
> index 3c52867dfe28..d384f4f86c26 100644
> --- a/drivers/scsi/Kconfig
> +++ b/drivers/scsi/Kconfig
> @@ -47,17 +47,6 @@ config SCSI_NETLINK
>   default n
>   depends on NET
>  
> -config SCSI_MQ_DEFAULT
> - bool "SCSI: use blk-mq I/O path by default"
> - depends on SCSI
> - ---help---
> -   This option enables the new blk-mq based I/O path for SCSI
> -   devices by default.  With the option the scsi_mod.use_blk_mq
> -   module/boot option defaults to Y, without it to N, but it can
> -   still be overridden either way.
> -
> -   If unsure say N.
> -
>  config SCSI_PROC_FS
>   bool "legacy /proc/scsi/ support"
>   depends on SCSI && PROC_FS
> diff --git a/drivers/scsi/scsi.c b/drivers/scsi/scsi.c
> index 1bf274e3b2b6..3d38c6d463b8 100644
> --- a/drivers/scsi/scsi.c
> +++ b/drivers/scsi/scsi.c
> @@ -800,11 +800,7 @@ MODULE_LICENSE("GPL");
>  module_param(scsi_logging_level, int, S_IRUGO|S_IWUSR);
>  MODULE_PARM_DESC(scsi_logging_level, "a bit mask of logging levels");
>  
> -#ifdef CONFIG_SCSI_MQ_DEFAULT
>  bool scsi_use_blk_mq = true;
> -#else
> -bool scsi_use_blk_mq = false;
> -#endif
>  module_param_named(use_blk_mq, scsi_use_blk_mq, bool, S_IWUSR | S_IRUGO);
>  
>  static int __init init_scsi(void)

Since a fix for the performance regression triggered by this patch will be 
upstream
soon (see also 
https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git/commit/?h=for-linus=32825c45ff8f4cce937ab85b030dc693ceb1aa0a):

Acked-by: Bart Van Assche 




Re: [PATCH] scsi: default to scsi-mq

2017-06-27 Thread Bart Van Assche
On Mon, 2017-06-26 at 20:55 +0200, Martin Wilck wrote:
> I personally find it odd that the compile-time choice goes away while
> the run-time choice remains available. I understand what Christoph is
> trying to achieve, but if it was up to me, I'd prefer to change the
> default and mark the "n" setting as deprecated.

Hello Martin,

Although I'm not sure of this I think Christoph wants to remove the config
option to make sure that scsi-mq becomes the default on any Linux distro
that uses a kernel in which this patch has been integrated. Unless someone
comes up with a better alternative I don't think there is a better approach
to achieve this than removing the config option?

Bart.

Re: [PATCH] scsi: default to scsi-mq

2017-06-26 Thread Martin Wilck
Hi Bart,

On Mon, 2017-06-26 at 15:31 +, Bart Van Assche wrote:
> On Mon, 2017-06-26 at 12:13 +, Bart Van Assche wrote:
> > On Thu, 2017-06-22 at 17:05 +0200, Martin Wilck wrote:
> > > On Fri, 2017-06-16 at 10:27 +0200, Christoph Hellwig wrote:
> > > > Remove the SCSI_MQ_DEFAULT config option and default to the
> > > > blk-mq
> > > > I/O
> > > > path now that we had plenty of testing, and have I/O schedulers
> > > > for
> > > > blk-mq.  The module option to disable the blk-mq path is kept
> > > > around
> > > > for now.
> > > 
> > > Could you explain why you remove the option entirely rather than
> > > just
> > > changing the default? Some distributions may wish to keep the
> > > ability
> > > to choose the compiled-in default.
> > 
> > Hello Martin,
> > 
> > Would it work for you to keep this patch as a distro-private patch?
> 
> What I meant is: apply this patch to the upstream kernel and keep 
> CONFIG_SCSI_MQ_DEFAULT as a distro-private patch.

First, let me clarify that I was not speaking for SUSE when I asked
this question, just expressing my personal concerns, partly motivated
by my previous employment at a hardware manufacturer.

Of course distro-makers can deal with this in various ways, for example
the way you suggest, although that sounds like a rather painful route
to choose.

I personally find it odd that the compile-time choice goes away while
the run-time choice remains available. I understand what Christoph is
trying to achieve, but if it was up to me, I'd prefer to change the
default and mark the "n" setting as deprecated.

Again, please do not take this as an official SUSE statement. I just
happen to be subscribed to linux-scsi with my suse.com address.

Regards,
Martin

-- 
Dr. Martin Wilck , Tel. +49 (0)911 74053 2107
SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham Norton
HRB 21284 (AG Nürnberg)



Re: [PATCH] scsi: default to scsi-mq

2017-06-26 Thread Bart Van Assche
On Mon, 2017-06-26 at 12:13 +, Bart Van Assche wrote:
> On Thu, 2017-06-22 at 17:05 +0200, Martin Wilck wrote:
> > On Fri, 2017-06-16 at 10:27 +0200, Christoph Hellwig wrote:
> > > Remove the SCSI_MQ_DEFAULT config option and default to the blk-mq
> > > I/O
> > > path now that we had plenty of testing, and have I/O schedulers for
> > > blk-mq.  The module option to disable the blk-mq path is kept around
> > > for now.
> > 
> > Could you explain why you remove the option entirely rather than just
> > changing the default? Some distributions may wish to keep the ability
> > to choose the compiled-in default.
> 
> Hello Martin,
> 
> Would it work for you to keep this patch as a distro-private patch?

What I meant is: apply this patch to the upstream kernel and keep 
CONFIG_SCSI_MQ_DEFAULT as a distro-private patch.

Bart.

Re: [PATCH] scsi: default to scsi-mq

2017-06-26 Thread Bart Van Assche
On Thu, 2017-06-22 at 17:05 +0200, Martin Wilck wrote:
> On Fri, 2017-06-16 at 10:27 +0200, Christoph Hellwig wrote:
> > Remove the SCSI_MQ_DEFAULT config option and default to the blk-mq
> > I/O
> > path now that we had plenty of testing, and have I/O schedulers for
> > blk-mq.  The module option to disable the blk-mq path is kept around
> > for now.
> 
> Could you explain why you remove the option entirely rather than just
> changing the default? Some distributions may wish to keep the ability
> to choose the compiled-in default.

Hello Martin,

Would it work for you to keep this patch as a distro-private patch?

Bart.

Re: [PATCH] scsi: default to scsi-mq

2017-06-26 Thread Christoph Hellwig
On Thu, Jun 22, 2017 at 05:05:33PM +0200, Martin Wilck wrote:
> Hello Christoph,
> 
> On Fri, 2017-06-16 at 10:27 +0200, Christoph Hellwig wrote:
> > Remove the SCSI_MQ_DEFAULT config option and default to the blk-mq
> > I/O
> > path now that we had plenty of testing, and have I/O schedulers for
> > blk-mq.  The module option to disable the blk-mq path is kept around
> > for now.
> 
> Could you explain why you remove the option entirely rather than just
> changing the default? Some distributions may wish to keep the ability
> to choose the compiled-in default.

Because the legacy code will go away, and I want people to prepare for
that.


Re: [PATCH] scsi: default to scsi-mq

2017-06-22 Thread Martin Wilck
Hello Christoph,

On Fri, 2017-06-16 at 10:27 +0200, Christoph Hellwig wrote:
> Remove the SCSI_MQ_DEFAULT config option and default to the blk-mq
> I/O
> path now that we had plenty of testing, and have I/O schedulers for
> blk-mq.  The module option to disable the blk-mq path is kept around
> for now.

Could you explain why you remove the option entirely rather than just
changing the default? Some distributions may wish to keep the ability
to choose the compiled-in default.

Regards,
Martin

-- 
Dr. Martin Wilck , Tel. +49 (0)911 74053 2107
SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham Norton
HRB 21284 (AG Nürnberg)