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