Skip to contentSkip to conversation

MPT2SAS boot fail... due to silently loosing the driver

DISCUSSION Peter Zijlstra 7 participants 13 messages Nov 23, 2015 – Dec 2, 2015

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

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

#1 lore raw

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.

#2 lore raw
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)
#4 lore raw
In reply to Christoph Hellwig
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

#5 lore raw
In reply to Peter Zijlstra
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
index 29061467cc17..901c97f1e368 100644
@@ -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
#6 lore raw
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 Engineering
drivers/scsi/mpt3sas/Kconfig +0 -0
index 29061467cc17..901c97f1e368 100644

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

#7 lore raw
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
maintainer
#9 lore raw
In reply to Martin K. Petersen

[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

#10 lore raw
In reply to Martin K. Petersen
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

Acked-by
#11 lore raw
In reply to Martin K. Petersen
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?

Could we get this upstream ASAP so that people testing later rc's don't lose their settings?

Thanks!

Ingo

#12 lore raw
In reply to Martin K. Petersen
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