MPT2SAS boot fail... due to silently loosing the driver
Subsystems (2)
Hi all,
Due to merging the MPT[23]SAS drivers (which undoubtedly is a good thing) my .config automagically lost its MPT2SAS entries and didn't ask for MPT3SAS because that was a pre-existing config which I didn't have selected.
c84b06a48c4d ("mpt3sas: Single driver module which supports both SAS 2.0 & SAS 3.0 HBAs")
Please either create a fake MPT2SAS config that selects the MPT3SAS driver, or rename the whole thing to MPT23SAS such that we at least get a relevant question on oldconfig.
Thanks for wasting my morning playing with horribly slow booting machines trying to figure out WTF it wouldn't go.
~ Peter
I wonder what the "classic" way to such transitions is. Adding a mpt2 option that just selects mpt3 sound easy, but might be very confusing.
Quoted 3 lines · Christoph Hellwig
I wonder what the "classic" way to such transitions is. Adding a mpt2 option that just selects mpt3 sound easy, but might be very confusing.
Personally, I would rename everything to 'mptXsas', and have the original options map onto that.
Cheers,
Hannes
Signature · 5 lines
Dr. Hannes Reinecke zSeries & Storage [email protected] +49 911 74053 688 SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton HRB 21284 (AG Nürnberg)
Send a patch so we can understand what you mean :)
Quoted 2 lines · Christoph Hellwig
I wonder what the "classic" way to such transitions is. Adding a mpt2 option that just selects mpt3 sound easy, but might be very confusing.
I was hit by the same problem, and wasted some time on it before Peter did his time wasting, so a solution would be nice.
An interactive SCSI_MPT2SAS option has to exist in any case, so that we can migrate those people who have it configured - and its help text should explain that it's a legacy setting that should not be used anymore. That won't be confusing.
Then the MPT3 section can do something like:
# Default to enabled if the config has the old driver enabled:
default y if SCSI_MPT2SAS
Doing this will also help bisectability: right now we cannot bisect on that system without figuring out whether to enable MPT2 or MPT3 at every single bisection step.
Don't ever break configs this way. Please!
Also, please pick hardware version invariant names - do we want to go through this again when MPT4 is introduced?
Thanks,
Ingo
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Peter" == Peter Zijlstra <[email protected]> writes:
Peter> Please either create a fake MPT2SAS config that selects the Peter> MPT3SAS driver, or rename the whole thing to MPT23SAS such that Peter> we at least get a relevant question on oldconfig.
Sorry about that, Peter.
I get bitten by oldconfig all the time so I have a script to manage all my configs. But it it would be nice if we had a way to express config options transitions in kbuild.
I guess we could do something like the following and let it sit for a release cycle to help people transition. Bit of a hack, but it worked for me in my quick testing...
Signature · 1 line
Martin K. Petersen Oracle Linux Engineering
drivers/scsi/mpt3sas/Kconfig +7 -0
@@ -48,6 +48,13 @@ config SCSI_MPT3SAS ---help--- This driver supports PCI-Express SAS 12Gb/s Host Adapters. +config SCSI_MPT2SAS + tristate + default n + select SCSI_MPT3SAS + ---help--- + Dummy config option for backwards compatiblity. + config SCSI_MPT2SAS_MAX_SGE int "LSI MPT Fusion SAS 2.0 Max number of SG Entries (16 - 256)" depends on PCI && SCSI && SCSI_MPT3SAS
Quoted 24 lines · Martin K. Petersen
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Peter" == Peter Zijlstra <[email protected]> writes:
Peter> Please either create a fake MPT2SAS config that selects the Peter> MPT3SAS driver, or rename the whole thing to MPT23SAS such that Peter> we at least get a relevant question on oldconfig.
Sorry about that, Peter.
I get bitten by oldconfig all the time so I have a script to manage all my configs. But it it would be nice if we had a way to express config options transitions in kbuild.
I guess we could do something like the following and let it sit for a release cycle to help people transition. Bit of a hack, but it worked for me in my quick testing...
Signature · 1 line
Martin K. Petersen Oracle Linux Engineeringdrivers/scsi/mpt3sas/Kconfig +0
-0
drivers/scsi/mpt3sas/Kconfig config SCSI_MPT3SAS · line 56
Quoted 9 lines
drivers/scsi/mpt3sas/Kconfig +6
-0@@ -48,6 +48,13 @@ config SCSI_MPT3SAS ---help--- This driver supports PCI-Express SAS 12Gb/s Host Adapters. +config SCSI_MPT2SAS + tristate + default n + select SCSI_MPT3SAS + ---help--- + Dummy config option for backwards compatiblity.
So I don't think this does what you expect it to do: non-interactive options will be set to their defaults, regardless of what's in the oldconfig.
So you need to make it interactive, with a short help text that explains to users that this is legacy option only, and that they should enable the MPT3SAS option if they want to configure things manually.
i.e. something like:
+config SCSI_MPT2SAS
+ tristate "Legacy MPT2SAS config option"
+ default n
+ select SCSI_MPT3SAS
+ ---help---
+ Dummy config option for backwards compatiblity: configure the MPT3SAS
+ driver instead.
Thanks,
Ingo
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Ingo" == Ingo Molnar <[email protected]> writes:
Ingo> So you need to make it interactive, with a short help text that Ingo> explains to users that this is legacy option only, and that they Ingo> should enable the MPT3SAS option if they want to configure things Ingo> manually.
+config SCSI_MPT2SAS
+ tristate "Legacy MPT2SAS config option"
+ default n
+ select SCSI_MPT3SAS
+ ---help---
+ Dummy config option for backwards compatiblity: configure the MPT3SAS
+ driver instead.
That's fine with me.
Sreekanth/Christoph/James: Any objections?
Signature · 1 line
Martin K. Petersen Oracle Linux Engineering
If that's been tested to work I'm fine with it.
James Bottomley
maintainer[cc to linux-scsi added]
Quoted 15 lines · Martin K. Petersen
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Ingo" == Ingo Molnar <[email protected]> writes:
Ingo> So you need to make it interactive, with a short help text that Ingo> explains to users that this is legacy option only, and that they Ingo> should enable the MPT3SAS option if they want to configure things Ingo> manually.
drivers/scsi/mpt3sas/Kconfig +7
-0+config SCSI_MPT2SAS + tristate "Legacy MPT2SAS config option" + default n + select SCSI_MPT3SAS + ---help--- + Dummy config option for backwards compatiblity: configure the MPT3SAS + driver instead.
Quoted 3 lines
That's fine with me.
Sreekanth/Christoph/James: Any objections?
Looks OK, we probably need a removal timeframe for it as well. What about removal in 4.6?
James
Quoted 16 lines · Martin K. Petersen
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines
"Ingo" == Ingo Molnar <[email protected]> writes:
Ingo> So you need to make it interactive, with a short help text that Ingo> explains to users that this is legacy option only, and that they Ingo> should enable the MPT3SAS option if they want to configure things Ingo> manually.
drivers/scsi/mpt3sas/Kconfig +7
-0+config SCSI_MPT2SAS + tristate "Legacy MPT2SAS config option" + default n + select SCSI_MPT3SAS + ---help--- + Dummy config option for backwards compatiblity: configure the MPT3SAS + driver instead.
Quoted 3 lines
That's fine with me.
Sreekanth/Christoph/James: Any objections?
[Sreekanth] Martin, I am fine with this change.
Quoted 3 lines
--
Martin K. Petersen Oracle Linux Engineering
Ingo Molnar
Acked-byQuoted 15 lines · Martin K. Petersen
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Ingo" == Ingo Molnar <[email protected]> writes:
Ingo> So you need to make it interactive, with a short help text that Ingo> explains to users that this is legacy option only, and that they Ingo> should enable the MPT3SAS option if they want to configure things Ingo> manually.
drivers/scsi/mpt3sas/Kconfig +7
-0+config SCSI_MPT2SAS + tristate "Legacy MPT2SAS config option" + default n + select SCSI_MPT3SAS + ---help--- + Dummy config option for backwards compatiblity: configure the MPT3SAS + driver instead.
Quoted 3 lines
That's fine with me.
Sreekanth/Christoph/James: Any objections?
Could we get this upstream ASAP so that people testing later rc's don't lose their settings?
Thanks!
Ingo
Quoted 3 lines · Martin K. Petersen
I guess we could do something like the following and let it sit for a release cycle to help people transition. Bit of a hack, but it worked for me in my quick testing...
So I'm not sure how this could have worked for you in testing: try to set the MPT2SAS option to =y in your .config:
CONFIG_SCSI_MPT2SAS=y
then run 'make oldconfig', and the option is disabled:
# CONFIG_SCSI_MPT2SAS is not set
The way to solve this is to make it an interactive option, with text to make sure users don't mistake it for anything else than it is: a legacy/migration helper config.
Thanks,
Ingo