public inbox for linux-scsi@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] 1/6: scsi_largelun and scsi_sparselun
@ 2004-04-18 18:58 Kurt Garloff
  2004-04-18 19:18 ` Christoph Hellwig
  0 siblings, 1 reply; 3+ messages in thread
From: Kurt Garloff @ 2004-04-18 18:58 UTC (permalink / raw)
  To: Linux SCSI list; +Cc: James Bottomley, Andrew Morton

[-- Attachment #1: Type: text/plain, Size: 2561 bytes --]

Feature.

Three new kernel/module parameters that affect SCSI scanning, all relevant
for SCSI-2 only, as for SCSI-3, REPORT_LUNS is normally used:
* scsi_sparselun allows the user to disable the Linux scanning optimization
  that assumes that LUNs are consecutive. Equivalent to setting BLIST_SPARSELUN
  blacklist entry for all devices.
* scsi_largelun alloes the user to disable the check to need SCSI-3 to allow
  LUNs >= 8. Equivalent to a global BLIST_LARGELUN.
* max_scsi_sparseluns: Allows to set a different limit for targets with 
  sparse LUN numbering.

--- linux-2.6.5/drivers/scsi/scsi_scan.c.orig	2004-04-04 05:37:41.000000000 +0200
+++ linux-2.6.5/drivers/scsi/scsi_scan.c	2004-04-15 21:47:12.859160471 +0200
@@ -80,6 +80,21 @@ module_param_named(max_luns, max_scsi_lu
 MODULE_PARM_DESC(max_luns,
 		 "last scsi LUN (should be between 1 and 2^32-1)");
 
+static int scsi_sparselun;
+module_param_named(scsi_sparselun, scsi_sparselun, int, S_IRUGO|S_IWUSR);
+MODULE_PARM_DESC(scsi_sparselun,
+		 "Assume sparse LUNs for all SCSI devices");
+
+static int scsi_largelun;
+module_param_named(scsi_largelun, scsi_largelun, int, S_IRUGO|S_IWUSR);
+MODULE_PARM_DESC(scsi_largelun,
+		 "Assume all SCSI-2 devs support more than 8 LUNs");
+
+static unsigned int max_scsi_sparseluns;
+module_param_named(max_scsi_sparseluns, max_scsi_sparseluns, int, S_IRUGO|S_IWUSR);
+MODULE_PARM_DESC(max_scsi_sparseluns,
+		 "Limit LUNs for scanning sparse LUN devices");
+
 #ifdef CONFIG_SCSI_REPORT_LUNS
 /*
  * max_scsi_report_luns: the maximum number of LUNS that will be
@@ -800,8 +815,9 @@ static void scsi_sequential_lun_scan(str
 	 * override the other settings, and scan all of them. Normally,
 	 * SCSI-3 devices should be scanned via the REPORT LUNS.
 	 */
-	if (bflags & BLIST_SPARSELUN) {
-		max_dev_lun = shost->max_lun;
+	if (bflags & BLIST_SPARSELUN || scsi_sparselun) {
+		max_dev_lun = min(shost->max_lun, max_scsi_sparseluns? 
+				  max_scsi_sparseluns: max_scsi_luns);
 		sparse_lun = 1;
 	} else
 		sparse_lun = 0;
@@ -845,7 +861,7 @@ static void scsi_sequential_lun_scan(str
 	 * Do not scan SCSI-2 or lower device past LUN 7, unless
 	 * BLIST_LARGELUN.
 	 */
-	if (scsi_level < SCSI_3 && !(bflags & BLIST_LARGELUN))
+	if (scsi_level < SCSI_3 && !(bflags & BLIST_LARGELUN) && !scsi_largelun)
 		max_dev_lun = min(8U, max_dev_lun);
 
 	/*
-- 
Kurt Garloff  <garloff@suse.de>                            Cologne, DE 
SUSE LINUX AG, Nuernberg, DE                          SUSE Labs (Head)

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] 1/6: scsi_largelun and scsi_sparselun
  2004-04-18 18:58 [PATCH] 1/6: scsi_largelun and scsi_sparselun Kurt Garloff
@ 2004-04-18 19:18 ` Christoph Hellwig
  2004-04-18 22:10   ` Kurt Garloff
  0 siblings, 1 reply; 3+ messages in thread
From: Christoph Hellwig @ 2004-04-18 19:18 UTC (permalink / raw)
  To: Kurt Garloff, Linux SCSI list, James Bottomley, Andrew Morton

On Sun, Apr 18, 2004 at 08:58:20PM +0200, Kurt Garloff wrote:
> +static int scsi_sparselun;
> +module_param_named(scsi_sparselun, scsi_sparselun, int, S_IRUGO|S_IWUSR);
> +MODULE_PARM_DESC(scsi_sparselun,
> +		 "Assume sparse LUNs for all SCSI devices");
> +
> +static int scsi_largelun;
> +module_param_named(scsi_largelun, scsi_largelun, int, S_IRUGO|S_IWUSR);
> +MODULE_PARM_DESC(scsi_largelun,
> +		 "Assume all SCSI-2 devs support more than 8 LUNs");

The names are badly chosen.  On the bootline commandline they already
have a scsi_mod. prefix, so the additional scsi_ is superflous.


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] 1/6: scsi_largelun and scsi_sparselun
  2004-04-18 19:18 ` Christoph Hellwig
@ 2004-04-18 22:10   ` Kurt Garloff
  0 siblings, 0 replies; 3+ messages in thread
From: Kurt Garloff @ 2004-04-18 22:10 UTC (permalink / raw)
  To: Christoph Hellwig; +Cc: Linux SCSI list

[-- Attachment #1: Type: text/plain, Size: 1107 bytes --]

On Sun, Apr 18, 2004 at 08:18:52PM +0100, Christoph Hellwig wrote:
> On Sun, Apr 18, 2004 at 08:58:20PM +0200, Kurt Garloff wrote:
> > +static int scsi_sparselun;
> > +module_param_named(scsi_sparselun, scsi_sparselun, int, S_IRUGO|S_IWUSR);
                        ^^^^^
> > +MODULE_PARM_DESC(scsi_sparselun,
                      ^^^^^
> > +		 "Assume sparse LUNs for all SCSI devices");
> > +
> > +static int scsi_largelun;
> > +module_param_named(scsi_largelun, scsi_largelun, int, S_IRUGO|S_IWUSR);
                        ^^^^^
> > +MODULE_PARM_DESC(scsi_largelun,
                      ^^^^^
> > +		 "Assume all SCSI-2 devs support more than 8 LUNs");
> 
> The names are badly chosen.  On the bootline commandline they already
> have a scsi_mod. prefix, so the additional scsi_ is superflous.

Good point, so I'll remove all scsi_ prefixes.

Regards,
-- 
Kurt Garloff                   <kurt@garloff.de>             [Koeln, DE]
Physics:Plasma modeling <garloff@plasimo.phys.tue.nl> [TU Eindhoven, NL]
Linux: SUSE Labs (Head)        <garloff@suse.de>    [SUSE Nuernberg, DE]

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2004-04-18 22:10 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-04-18 18:58 [PATCH] 1/6: scsi_largelun and scsi_sparselun Kurt Garloff
2004-04-18 19:18 ` Christoph Hellwig
2004-04-18 22:10   ` Kurt Garloff

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox