Date: Wed, 20 Feb 2008 00:54:21 +0300 (MSK) From: Oleg Sharoiko <os@rsu.ru> To: FreeBSD-gnats-submit@FreeBSD.org Cc: Oleg Sharoiko <os@rsu.ru> Subject: kern/120858: [patch] [cam] panic: ufs_dirbad with CLARiiON CX3-40 Message-ID: <200802192154.m1JLsLeA010248@brain.cc.rsu.ru> Resent-Message-ID: <200802192200.m1JM05wu034017@freefall.freebsd.org>
index | next in thread | raw e-mail
>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@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:
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200802192154.m1JLsLeA010248>
