From owner-svn-src-head@FreeBSD.ORG Mon Jan 9 19:22:03 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 274021065670; Mon, 9 Jan 2012 19:22:03 +0000 (UTC) (envelope-from mavbsd@gmail.com) Received: from mail-ee0-f54.google.com (mail-ee0-f54.google.com [74.125.83.54]) by mx1.freebsd.org (Postfix) with ESMTP id 2A3BE8FC1D; Mon, 9 Jan 2012 19:22:01 +0000 (UTC) Received: by eekc50 with SMTP id c50so2859204eek.13 for ; Mon, 09 Jan 2012 11:22:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=sender:message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-type:content-transfer-encoding; bh=SNqAaCgqvh7igVrf3wav1Ovl11lSe7SOLdn8OxplDf8=; b=Sldlfe4MDAKc4gmu99vwAfFRDb5ZGvBEZt1KGySBVPPbF0+pEDABKMGxVMUPDQhV8T gBfVcYgBi+GnTilLoyQQYKowxnK7uFNWG+JoaUcaEbteUkrvuXMmKS1OmhoCAjrqtQbA gfjeD4kFkrN3EtQtiibERNE6YYVxNEeBzoEgY= Received: by 10.14.99.197 with SMTP id x45mr6640262eef.114.1326136920424; Mon, 09 Jan 2012 11:22:00 -0800 (PST) Received: from mavbook.mavhome.dp.ua (pc.mavhome.dp.ua. [212.86.226.226]) by mx.google.com with ESMTPS id 76sm294295005eeh.0.2012.01.09.11.21.58 (version=SSLv3 cipher=OTHER); Mon, 09 Jan 2012 11:21:59 -0800 (PST) Sender: Alexander Motin Message-ID: <4F0B3E4E.20807@FreeBSD.org> Date: Mon, 09 Jan 2012 21:21:50 +0200 From: Alexander Motin User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:8.0) Gecko/20111112 Thunderbird/8.0 MIME-Version: 1.0 To: Garrett Cooper References: <201112282249.pBSMnTZu028304@svn.freebsd.org> <4F0B38B9.1020302@FreeBSD.org> In-Reply-To: Content-Type: text/plain; charset=KOI8-R; format=flowed Content-Transfer-Encoding: 7bit Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Maksim Yevmenkin Subject: Re: svn commit: r228939 - head/sys/dev/mps X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jan 2012 19:22:03 -0000 On 09.01.2012 21:04, Garrett Cooper wrote: > 2012/1/9 Alexander Motin: >> On 09.01.2012 20:54, Maksim Yevmenkin wrote: >>> >>> On Wed, Dec 28, 2011 at 2:49 PM, Alexander Motin 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? > > It would make it nice when dealing with different controllers -- a > similar example is that mfi(4) has a tunable called hw.mfi.max_cmds > which controls the I/O command queue size as not all MegaRAID cards > have the same I/O queue size capabilities. Not many people care able to configure such low-level things. It means that if such configuration is needed, then either most of others will be in trouble or at least get suboptimal performance. If there are any way to avoid such tunables, I believe we should avoid them. -- Alexander Motin