kern/120858: [patch] [cam] panic: ufs_dirbad with CLARiiON CX3-40

Oleg Sharoiko os at rsu.ru
Tue Feb 19 22:00:05 UTC 2008


>Number:         120858
>Category:       kern
>Synopsis:       [patch] [cam] panic: ufs_dirbad with CLARiiON CX3-40
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Feb 19 22:00:04 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator:     Oleg Sharoiko
>Release:        FreeBSD 7.0-RC1 amd64
>Organization:
Southern federal university
>Environment:
System: FreeBSD blade-3-1.r61.net 7.0-PRERELEASE FreeBSD 7.0-PRERELEASE #1: Tue Feb 19 19:00:51 UTC 2008 os at blade-3-1.r61.net:/usr/obj/usr/src/sys/GENERIC amd64


	
>Description:
	Had a chance to play with FreeBSD on IBM BladeCenter H and
EMC CLARiiON CX3-40. Moderate I/O activity on ufs filesystem gave
me a reproducable ufs_dirbad panic and corrupted root directory of
filesystem.

>How-To-Repeat:
	Assuming da0 is a LUN on CX3:

	newfs -U /dev/da0s1a
	mount /dev/da0s1a /mnt
	tar cf - -C / --one-file-system . usr var tmp | tar xvf -C /mnt

>Fix:
	Lowering queue depth down to 63 (with camcontrol tags da0 -N 63)
fixes this issue. I did several successfull make -9 buildworld and 
make -j buildkerel. With queue depth 64 I still got panics. Here is a patch
which sets maxtags to 63 for volumes on CLARiiON.

	The LUNs from CLARiON are identified by camcontrol devlist
as follows:

<DGC RAID 5 0324>                  at scbus0 target 0 lun 0 (pass0,da0)
<DGC RAID 5 0324>                  at scbus0 target 1 lun 0 (pass1,da1)
<DGC RAID 5 0324>                  at scbus1 target 0 lun 0 (pass2,da2)
<DGC RAID 5 0324>                  at scbus1 target 1 lun 0 (pass3,da3)

	I'm not sure if DGC is a sufficently narrow pattern for
xpt_quirk_table, but can't suggest anything better.

Index: cam_xpt.c
===================================================================
RCS file: /home/ncvs/src/sys/cam/cam_xpt.c,v
retrieving revision 1.190.2.1
diff -u -r1.190.2.1 cam_xpt.c
--- cam_xpt.c	31 Jan 2008 09:31:41 -0000	1.190.2.1
+++ cam_xpt.c	19 Feb 2008 20:33:30 -0000
@@ -632,6 +632,15 @@
 		CAM_QUIRK_NOSERIAL, /*mintags*/0, /*maxtags*/0
 	},
 	{
+		/*
+		 * It looks like EMC CLARiiON CX3 model 40 silently
+		 * drops commands when there are more than 63 commands
+		 * in a queue
+		 */
+		{ T_ANY, SIP_MEDIA_FIXED|SIP_MEDIA_REMOVABLE, "DGC", "*", "*" },
+		/*quirks*/0, /*mintags*/2, /*maxtags*/63
+	},
+	{
 		/* Default tagged queuing parameters for all devices */
 		{
 		  T_ANY, SIP_MEDIA_REMOVABLE|SIP_MEDIA_FIXED,
>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list