From owner-svn-src-head@FreeBSD.ORG Mon Feb 9 19:18:36 2009 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 6220B1065677; Mon, 9 Feb 2009 19:18:36 +0000 (UTC) (envelope-from xcllnt@mac.com) Received: from asmtpout013.mac.com (asmtpout013.mac.com [17.148.16.88]) by mx1.freebsd.org (Postfix) with ESMTP id 473A78FC0C; Mon, 9 Feb 2009 19:18:36 +0000 (UTC) (envelope-from xcllnt@mac.com) MIME-version: 1.0 Content-transfer-encoding: 7BIT Content-type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Received: from amoghe-t43.jnpr.net (natint3.juniper.net [66.129.224.36]) by asmtp013.mac.com (Sun Java(tm) System Messaging Server 6.3-7.03 (built Aug 7 2008; 32bit)) with ESMTPSA id <0KET005LMCAUDB80@asmtp013.mac.com>; Mon, 09 Feb 2009 11:18:31 -0800 (PST) Message-id: <0AA26479-B36A-4412-BF2B-7D4C573BC266@mac.com> From: Marcel Moolenaar To: John Baldwin In-reply-to: <200902091342.16078.jhb@freebsd.org> Date: Mon, 09 Feb 2009 11:18:29 -0800 References: <200902082254.n18MsxVt037307@svn.freebsd.org> <200902090923.45887.jhb@freebsd.org> <2EA5FEEB-E676-4D1B-9700-399C783F4590@mac.com> <200902091342.16078.jhb@freebsd.org> X-Mailer: Apple Mail (2.930.3) Cc: svn-src-head@freebsd.org, Scott Long , src-committers@freebsd.org, svn-src-all@freebsd.org, "M. Warner Losh" Subject: Re: svn commit: r188350 - in head/sys: amd64/amd64 arm/arm dev/usb2/core i386/i386 ia64/ia64 sys 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 Feb 2009 19:18:36 -0000 On Feb 9, 2009, at 10:42 AM, John Baldwin wrote: >>> The 'align' parameter to bus_dma_tag_create(). If your hardware >>> needs buffers >>> to be aligned on a 4-byte boundary and you bus_dmamap_load() a >>> buffer >>> where 'addr % 4 != 0', then the buffer is bounced. Since by default >>> the new >>> buffer starts on a page boundary, it satifies the 'addr % 4'. >> >> But according to the man page, bounce buffering may not >> be implemented or not be applicable to a platform. It >> seems to me that you cannot depend on this side-effect >> in a generic driver. Are you guys talking only in terms >> of i386 or is this generally applicable? > > All of the platforms that do bounce buffering will honor this. If a > given > platform doesn't support bounce buffering then I imagine it will fail > misaligned requests with an error. It would probably make it easier > to > support bounce buffering on more platforms if some of the support > code for > managing bounce zones could be moved into a subr_busdma.c or the > like since > much of it is copy and pasted. Very much agreed with the unification in subr_busdma.c. If the shared implementation then grows a IOMMU interface, then platforms with a IOMMU can avoid bounce buffering when possible (i.e. no re-alignment is needed or enough free IOMMU mappings exist to avoid the bounce buffering). -- Marcel Moolenaar xcllnt@mac.com