Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 9 Jan 2012 10:54:03 -0800
From:      Maksim Yevmenkin <emax@freebsd.org>
To:        Alexander Motin <mav@freebsd.org>
Cc:        svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org
Subject:   Re: svn commit: r228939 - head/sys/dev/mps
Message-ID:  <CAFPOs6oaMNsHP9VFtL-Szs=vDQj-Ss=JKCECqsUNTMXi7UwNHw@mail.gmail.com>
In-Reply-To: <201112282249.pBSMnTZu028304@svn.freebsd.org>
References:  <201112282249.pBSMnTZu028304@svn.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Dec 28, 2011 at 2:49 PM, Alexander Motin <mav@freebsd.org> wrote:
> Author: mav
> Date: Wed Dec 28 22:49:28 2011
> New Revision: 228939
> URL: http://svn.freebsd.org/changeset/base/228939
>
> Log:
> =A0Set maximum I/O size for mps(4) to MAXPHYS. Looking into the code, I s=
ee
> =A0no reason why it should be limited to 64K of DFLTPHYS. DMA data tag is=
 any
> =A0way set to allow MAXPHYS, S/G lists (chain elements) are sufficient an=
d
> =A0overflows are also handled. On my tests even 1MB I/Os are working fine=
.
>
> =A0Reviewed by: =A0ken@
>
> Modified:
> =A0head/sys/dev/mps/mps_sas.c
>
> Modified: head/sys/dev/mps/mps_sas.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=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
> --- head/sys/dev/mps/mps_sas.c =A0Wed Dec 28 22:18:53 2011 =A0 =A0 =A0 =
=A0(r228938)
> +++ head/sys/dev/mps/mps_sas.c =A0Wed Dec 28 22:49:28 2011 =A0 =A0 =A0 =
=A0(r228939)
> @@ -937,6 +937,7 @@ mpssas_action(struct cam_sim *sim, union
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0cpi->transport_version =3D 0;
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0cpi->protocol =3D PROTO_SCSI;
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0cpi->protocol_version =3D SCSI_REV_SPC;
> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 cpi->maxio =3D MAXPHYS;
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0cpi->ccb_h.status =3D CAM_REQ_CMP;
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0break;
> =A0 =A0 =A0 =A0}

sorry for the late reply, but can we make in into tunable please? i
have in local tree

--- mps_sas.c.orig	2011-11-17 02:05:04.000000000 -0800
+++ mps_sas.c	2011-12-28 16:05:10.000000000 -0800
@@ -121,6 +121,11 @@

 MALLOC_DEFINE(M_MPSSAS, "MPSSAS", "MPS SAS memory");

+int mps_maxio =3D MAXPHYS;
+TUNABLE_INT("hw.mps.maxio", &mps_maxio);
+SYSCTL_INT(_hw_mps, OID_AUTO, maxio, CTLFLAG_RD, &mps_maxio, 0,
+	"CAM maxio override\n");
+
 static __inline int mpssas_set_lun(uint8_t *lun, u_int ccblun);
 static struct mpssas_target * mpssas_alloc_target(struct mpssas_softc *,
     struct mpssas_target *);
@@ -938,6 +943,7 @@
 		cpi->protocol =3D PROTO_SCSI;
 		cpi->protocol_version =3D SCSI_REV_SPC;
 		cpi->ccb_h.status =3D CAM_REQ_CMP;
+		cpi->maxio =3D mps_maxio;
 		break;
 	}
 	case XPT_GET_TRAN_SETTINGS:

thanks,
max



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAFPOs6oaMNsHP9VFtL-Szs=vDQj-Ss=JKCECqsUNTMXi7UwNHw>