Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 09 Jan 2012 20:58:01 +0200
From:      Alexander Motin <mav@FreeBSD.org>
To:        Maksim Yevmenkin <emax@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:  <4F0B38B9.1020302@FreeBSD.org>
In-Reply-To: <CAFPOs6oaMNsHP9VFtL-Szs=vDQj-Ss=JKCECqsUNTMXi7UwNHw@mail.gmail.com>
References:  <201112282249.pBSMnTZu028304@svn.freebsd.org> <CAFPOs6oaMNsHP9VFtL-Szs=vDQj-Ss=JKCECqsUNTMXi7UwNHw@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 09.01.2012 20:54, Maksim Yevmenkin wrote:
> 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:
>>   Set maximum I/O size for mps(4) to MAXPHYS. Looking into the code, I see
>>   no reason why it should be limited to 64K of DFLTPHYS. DMA data tag is any
>>   way set to allow MAXPHYS, S/G lists (chain elements) are sufficient and
>>   overflows are also handled. On my tests even 1MB I/Os are working fine.
>>
>>   Reviewed by:  ken@
>>
>> Modified:
>>   head/sys/dev/mps/mps_sas.c
>>
>> Modified: head/sys/dev/mps/mps_sas.c
>> ==============================================================================
>> --- head/sys/dev/mps/mps_sas.c  Wed Dec 28 22:18:53 2011        (r228938)
>> +++ head/sys/dev/mps/mps_sas.c  Wed Dec 28 22:49:28 2011        (r228939)
>> @@ -937,6 +937,7 @@ mpssas_action(struct cam_sim *sim, union
>>                 cpi->transport_version = 0;
>>                 cpi->protocol = PROTO_SCSI;
>>                 cpi->protocol_version = SCSI_REV_SPC;
>> +               cpi->maxio = MAXPHYS;
>>                 cpi->ccb_h.status = CAM_REQ_CMP;
>>                 break;
>>         }
>
> 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 = 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 = PROTO_SCSI;
>   		cpi->protocol_version = SCSI_REV_SPC;
>   		cpi->ccb_h.status = CAM_REQ_CMP;
> +		cpi->maxio = mps_maxio;
>   		break;
>   	}
>   	case XPT_GET_TRAN_SETTINGS:

We can. but could you explain why? Have you found any problems this change?

-- 
Alexander Motin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4F0B38B9.1020302>