Dell H310, JBOD mode "hard error"
Sean Bruno
sean_bruno at yahoo.com
Wed Aug 14 02:47:06 UTC 2013
On Sun, 2013-07-14 at 10:23 -0700, Sean Bruno wrote:
> Not sure what to make of this. I've tested a lot of svn revisions of
> the thunderbolt code, but nothing looks obvious.
>
> When I use a single drive in "SYSPD" mode on a Dell H310 (falcon or
> skinny drake) I get a /dev/mfisyspd0 device. The JBOD mode *seems* to
> work just fine as long as I don't do multiple things at once to it, e.g.
> single user fsck works, but multiuser things die.
>
> I get a failure case that emits errors such as:
>
> g_vfs_done():error 27 in callback
> mfisyspd0p2[READ(offset=7176192, length=425984)]mfisyspd0: hard error
> error = 5
> cmd=read 15360-16383
> error 27 in callback
> g_vfs_done():mfisyspd0: hard error mfisyspd0p2[READ(offset=7602176,
> length=524288)]cmd=read error = 5
> 16384-17407
> error 27 in callback
> g_vfs_done():mfisyspd0: hard error mfisyspd0p2[READ(offset=8126464,
> length=524288)]cmd=read error = 5
> 14560-15359
> error 27 in callback
> g_vfs_done():mfisyspd0: hard error mfisyspd0p2[READ(offset=7192576,
> length=409600)]cmd=read error = 5
> 15360-16383
>
>
> Sean
Ah, I see something that Yahoo! does that FreeBSD does not finally. We
tune MAXPHYS *up* to (512 * 1024) because of performance and available
memory.
mfi(4) set's its own (MFI_MAXPHYS) to (128 * 1024) instead of using the
value from sys/param.h (btw, I don't quite get why, but whatever).
Without a min() check in mfi_syspd.c that mimics the one in mfi_disk.c,
Yahoo code falls over in "SYSPD" mode (mfi(4) real jbod mode).
Patch:
Index: mfi_syspd.c
===================================================================
--- mfi_syspd.c (revision 254313)
+++ mfi_syspd.c (working copy)
@@ -128,7 +128,9 @@
sc->pd_disk->d_drv1 = sc;
sc->pd_disk->d_maxsize = sc->pd_controller->mfi_max_io * secsize;
sc->pd_disk->d_name = "mfisyspd";
- sc->pd_disk->d_open = mfi_syspd_open;
+ sc->pd_disk->d_maxsize = min(sc->pd_controller->mfi_max_io * secsize,
+ (sc->pd_controller->mfi_max_sge - 1) * PAGE_SIZE);
+
sc->pd_disk->d_close = mfi_syspd_close;
sc->pd_disk->d_strategy = mfi_syspd_strategy;
sc->pd_disk->d_dump = mfi_syspd_dump;
<bcc smh, ambrisko, scottl>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: This is a digitally signed message part
URL: <http://lists.freebsd.org/pipermail/freebsd-scsi/attachments/20130813/b2b9c5d3/attachment.sig>
More information about the freebsd-scsi
mailing list