Re: [PATCH] scsi: default to scsi-mq
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 > > ALL MIN
Re: [PATCH] scsi: default to scsi-mq
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 0.00484
Re: [PATCH] scsi: default to scsi-mq
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
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
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
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
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
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&id=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
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&id=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
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&id=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
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&id=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
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&id=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
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&id=32825c45ff8f4cce937ab85b030dc693ceb1aa0a): Acked-by: Bart Van Assche
Re: [PATCH] scsi: default to scsi-mq
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
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
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
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
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
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)
[PATCH] scsi: default to scsi-mq
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) -- 2.11.0