[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Getting/Forcing Greater than 4KB Buffer Allocations
- To: pyunyh_(_at_)_gmail_(_dot_)_com
- Subject: Re: Getting/Forcing Greater than 4KB Buffer Allocations
- From: "Kip Macy" <kip_(_dot_)_macy_(_at_)_gmail_(_dot_)_com>
- Date: Tue, 17 Jul 2007 22:10:51 -0700
- Cc: David Christensen <davidch_(_at_)_broadcom_(_dot_)_com>, current_(_at_)_freebsd_(_dot_)_org
- Dkim-signature: a=rsa-sha1; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=OABT42Ja+D3GnnVFex/X9syfUd2c9B0kMOvBJ68otJw2ySibuqHisZis+Afni+Fetyq40d3ttlpi2eZXKnu9t90ScEhBHeL1xZRyzIyampXS4PE//iUS7V4DA4zdyL4bqbENh3e2zQqPwFM4t5Fa+BVaeliUVAxFCW75ZjLAm0o=
On 7/17/07, Pyun YongHyeon <pyunyh_(_at_)_gmail_(_dot_)_com> wrote:
On Tue, Jul 17, 2007 at 04:54:31PM -0700, David Christensen wrote:
> I'm investigating a problem with my bce driver which occurs when I ask
> for a jumbo
> mbuf cluster (through m_cljget()). When I map the memory for DMA I
> get 3 memory segments (4KB + 4KB + 1KB) on my system, but on another
> system he's seeing 2 memory segments (8KB + 1KB). Is there a
> option that allows this or some other tuning variable involved? The
> system is a
> Xeon dual-core processor and has 8GB of RAM, running an AMD64 version of
> the kernel.
I've briefly looked over bus_dma usage on bce(4). It seems that you
told bus_dma the the dma map could be made up of BCE_MAX_SEGMENTS
segments, where a dma segment could be MJUM9BYTES bytes. If you want
just two segments you may have to use 2 instead of BCE_MAX_SEGMENTS.
If the hardware can support up to BCE_MAX_SEGMENTS dma segments on Rx
descriptors you should be prepared to handle that number of dma
segments too(e.g. You don't know how may dma segments would be
returned by bus_dma, you just know the upper bound as you specified
If the hardware can handle just up to 4KB for a dma segment you
should tell bus_dma the restriction of the dma segment.
If you have to get a single dma segment that covers MJUM9BYTES bytes
due to the limitation of the hardware you may have to use local
I have a patch to make jumbo frames contiguous that will go into HEAD
after 7 branches.
freebsd-current_(_at_)_freebsd_(_dot_)_org mailing list
To unsubscribe, send any mail to "freebsd-current-unsubscribe_(_at_)_freebsd_(_dot_)_org"