Skip site navigation (1)Skip section navigation (2)
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>