Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 13 Aug 2013 19:46:56 -0700
From:      Sean Bruno <sean_bruno@yahoo.com>
To:        sbruno@freebsd.org
Cc:        "FreeBSD-scsi@freebsd.org" <FreeBSD-scsi@freebsd.org>
Subject:   Re: Dell H310, JBOD mode "hard error"
Message-ID:  <1376448416.1439.7.camel@localhost>
In-Reply-To: <1373822621.1431.5.camel@localhost>
References:  <1373822621.1431.5.camel@localhost>

Next in thread | Previous in thread | Raw E-Mail | Index | Archive | Help

--=-F13hOyrzBOZjHaUmC312
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

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. =20
>=20
> 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.
>=20
> I get a failure case that emits errors such as:
>=20
> g_vfs_done():error 27 in callback
> mfisyspd0p2[READ(offset=3D7176192, length=3D425984)]mfisyspd0: hard error
> error =3D 5
> cmd=3Dread 15360-16383
> error 27 in callback
> g_vfs_done():mfisyspd0: hard error mfisyspd0p2[READ(offset=3D7602176,
> length=3D524288)]cmd=3Dread error =3D 5
> 16384-17407
> error 27 in callback
> g_vfs_done():mfisyspd0: hard error mfisyspd0p2[READ(offset=3D8126464,
> length=3D524288)]cmd=3Dread error =3D 5
> 14560-15359
> error 27 in callback
> g_vfs_done():mfisyspd0: hard error mfisyspd0p2[READ(offset=3D7192576,
> length=3D409600)]cmd=3Dread error =3D 5
> 15360-16383
>=20
>=20
> 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
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- mfi_syspd.c	(revision 254313)
+++ mfi_syspd.c	(working copy)
@@ -128,7 +128,9 @@
 	sc->pd_disk->d_drv1 =3D sc;
 	sc->pd_disk->d_maxsize =3D sc->pd_controller->mfi_max_io * secsize;
 	sc->pd_disk->d_name =3D "mfisyspd";
-	sc->pd_disk->d_open =3D mfi_syspd_open;
+	sc->pd_disk->d_maxsize =3D min(sc->pd_controller->mfi_max_io * secsize,
+		(sc->pd_controller->mfi_max_sge - 1) * PAGE_SIZE);
+
 	sc->pd_disk->d_close =3D mfi_syspd_close;
 	sc->pd_disk->d_strategy =3D mfi_syspd_strategy;
 	sc->pd_disk->d_dump =3D mfi_syspd_dump;


<bcc smh, ambrisko, scottl>

--=-F13hOyrzBOZjHaUmC312
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: This is a digitally signed message part

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.14 (FreeBSD)

iQEcBAABAgAGBQJSCu+YAAoJEBkJRdwI6BaHFRUH/RD/SQ97OjATNreOBaoRoYoT
hmIEbtI1fxTP/vaFn2qOMupKSNdfR2MSD+znECkDcHYHtuLt6oL6Mey1WqP0KbLE
QTndpxa8o8BZd8+6FuhcL7wnUQqtdH6MZM2arCanF0CVHBK4mj2jdCqY02HRkcoi
UpL1VZklj8+ruk+BSpA2VaKKRuSnxMVsh1OZWDtOhSx6BSqWGnfDAxY5E/n9DnAJ
vJ+gjLAVaZni0qgb85+rrBTxYfwMfoUrhCe5KU6Pw6gE3LPYpQ8E3n3YuEjdglst
pHnaDQWLqqvm9b2jSsy0nEf0J8yfYjy2Laat31yuLEoAgJnl3vFVTYcPE0FwvOc=
=TPi7
-----END PGP SIGNATURE-----

--=-F13hOyrzBOZjHaUmC312--




Want to link to this message? Use this URL: <http://docs.FreeBSD.org/cgi/mid.cgi?1376448416.1439.7.camel>