Date: Fri, 11 Jun 2010 10:12:05 -0600 From: Scott Long <scottl@samsco.org> To: John Baldwin <jhb@freebsd.org>, Marcel Moolenaar <marcel@freebsd.org> Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r209026 - in head/sys/ia64: ia64 include Message-ID: <853068F6-D736-4DA3-859F-D946D096843D@samsco.org> In-Reply-To: <201006110751.40735.jhb@freebsd.org> References: <201006110300.o5B30X9q045387@svn.freebsd.org> <201006110751.40735.jhb@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Jun 11, 2010, at 5:51 AM, John Baldwin wrote: > On Thursday 10 June 2010 11:00:33 pm Marcel Moolenaar wrote: >> Author: marcel >> Date: Fri Jun 11 03:00:32 2010 >> New Revision: 209026 >> URL: http://svn.freebsd.org/changeset/base/209026 >>=20 >> Log: >> Bump MAX_BPAGES from 256 to 1024. It seems that a few drivers, bge(4) >> in particular, do not handle deferred DMA map load operations at all. >> Any error, and especially EINPROGRESS, is treated as a hard error and >> typically abort the current operation. The fact that the busdma code >> queues the load operation for when resources (i.e. bounce buffers in >> this particular case) are available makes this especially = problematic. >> Bounce buffering, unlike what the PR synopsis would suggest, works >> fine. >>=20 >> While on the subject, properly implement swi_vm(). >=20 > NIC drivers do not handle deferred load operations at all (note that=20= > bus_dmamap_load_mbuf() and bus_dmamap_load_mbuf_sg() enforce = BUS_DMA_NOWAIT). > It is common practice to just drop the packet in that case. >=20 Yes, long ago when network drivers started being converted to busdma, it = was agreed that EINPROGRESS simply doesn't make sense for them. Any = platform that winds up making extensive use of bounce buffers for = network hardware is going to perform poorly no matter what, and should = hopefully have some sort of IOMMU that can be used instead. Scott
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?853068F6-D736-4DA3-859F-D946D096843D>