[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[dm-devel] [multipath] hwtable update



Hi Christophe,

here's a small update for the hardware table.
I've added a new controller (IBM DS4100), which uses the same controller
than SGI TPC. For a proper support I had to relax the checks in pp_tpc
slightly.
Secondly, it sets the FAILBACK for all machines supported by pp_tpc to
-FAILBACK_IMMEDIATE, as we cannot (yet) adjust the path setting. Hence
we need to switch back to the preferred path as soon as it becomes
available again.

If I ever get my hands on the manual I'll be probably adding a hardware
handler for it. So anyone having a PDF called 'Sofware Interface
Specification' describing amongs others SCSI INQUIRY commands, please
speak up :-)

Cheers,

Hannes
-- 
Dr. Hannes Reinecke			hare suse de
SuSE Linux Products GmbH		S390 & zSeries
Maxfeldstraße 5				+49 911 74053 688
90409 Nürnberg				http://www.suse.de
diff --git a/libmultipath/hwtable.c b/libmultipath/hwtable.c
--- a/libmultipath/hwtable.c
+++ b/libmultipath/hwtable.c
@@ -37,6 +37,11 @@ setup_default_hwtable (vector hw)
 	r += store_hwe_ext(hw, "DGC", "^[^LUN_Z]", GROUP_BY_PRIO,
 		   DEFAULT_GETUID, "/sbin/mpath_prio_emc /dev/%n", "1 emc",
 		   "1 queue_if_no_path", "emc_clariion", -FAILBACK_IMMEDIATE);
+	/* IBM DS4100 / FAStT100 */
+	r += store_hwe_ext(hw, "IBM", "1742", GROUP_BY_PRIO, DEFAULT_GETUID,
+		   "/sbin/mpath_prio_tpc /dev/%n", "0", "0", "tur",
+		   -FAILBACK_IMMEDIATE);
+	/* IBM DS4200 / FAStT200 */
 	r += store_hwe_ext(hw, "IBM", "3542", GROUP_BY_SERIAL, DEFAULT_GETUID,
 		   NULL, "0", "0", "tur", FAILBACK_UNDEF);
 	/* IBM ESS F20 aka Shark */
@@ -46,13 +51,14 @@ setup_default_hwtable (vector hw)
        /* IBM DS6000 */
 	r += store_hwe_ext(hw, "IBM", "1750500", GROUP_BY_PRIO, DEFAULT_GETUID,
 		   "/sbin/mpath_prio_alua /dev/%n", "0", "1 queue_if_no_path",
-		   "tur", FAILBACK_UNDEF);
+		   "tur", -FAILBACK_IMMEDIATE);
 	/* IBM DS8000 */
 	r += store_hwe_ext(hw, "IBM", "2107900", GROUP_BY_SERIAL, DEFAULT_GETUID,
 		   NULL, "0", "1 queue_if_no_path", "tur", FAILBACK_UNDEF);
 	/* IBM SAN Volume Controller */
-	r += store_hwe_ext(hw, "IBM", "2145", MULTIBUS, DEFAULT_GETUID,
-		   NULL, "0", "1 queue_if_no_path", "tur", FAILBACK_UNDEF);
+	r += store_hwe_ext(hw, "IBM", "2145", GROUP_BY_PRIO, DEFAULT_GETUID,
+		   "/sbin/mpath_prio_alua /dev/%n", "0", "1 queue_if_no_path",
+		   "tur", -FAILBACK_IMMEDIATE);
 	/* IBM S/390 ECKD DASD */
 	r += store_hwe_ext(hw, "IBM", "S/390 DASD ECKD", MULTIBUS,
 		   "/sbin/dasdview -j /dev/%n", NULL, "0", "0",
@@ -64,9 +70,11 @@ setup_default_hwtable (vector hw)
 		   DEFAULT_GETUID, "/sbin/mpath_prio_alua %d", "0", "0",
 		   "tur", FAILBACK_UNDEF);
 	r += store_hwe_ext(hw, "SGI", "TP9400", GROUP_BY_PRIO, DEFAULT_GETUID,
-		   "/sbin/mpath_prio_tpc /dev/%n", "0", "0", "tur", FAILBACK_UNDEF);
+		   "/sbin/mpath_prio_tpc /dev/%n", "0", "0", "tur",
+		   -FAILBACK_IMMEDIATE);
 	r += store_hwe_ext(hw, "SGI", "TP9500", GROUP_BY_PRIO, DEFAULT_GETUID,
-		   "/sbin/mpath_prio_tpc /dev/%n", "0", "0", "tur", FAILBACK_UNDEF);
+		   "/sbin/mpath_prio_tpc /dev/%n", "0", "0", "tur",
+		   -FAILBACK_IMMEDIATE);
 
 	return r;
 }
diff --git a/path_priority/pp_tpc/pp_tpc.c b/path_priority/pp_tpc/pp_tpc.c
--- a/path_priority/pp_tpc/pp_tpc.c
+++ b/path_priority/pp_tpc/pp_tpc.c
@@ -54,10 +54,10 @@ int sgi_tpc_prio(const char *dev)
 	
 	if (/* Verify the code page - right page & page identifier */
 	    sense_buffer[1] != 0xc9 || 
+	    sense_buffer[3] != 0x2c ||
 	    sense_buffer[4] != 'v' ||
 	    sense_buffer[5] != 'a' ||
-	    sense_buffer[6] != 'c' ||
-	    sense_buffer[7] != '1' ) {
+	    sense_buffer[6] != 'c' ) {
 		fprintf(stderr, "Volume access control page in unknown format");
 		goto out;
 	}

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]