Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 17 Jul 2007 22:10:51 -0700
From:      "Kip Macy" <kip.macy@gmail.com>
To:        pyunyh@gmail.com
Cc:        David Christensen <davidch@broadcom.com>, current@freebsd.org
Subject:   Re: Getting/Forcing Greater than 4KB Buffer Allocations
Message-ID:  <b1fa29170707172210r407a30e8x791d3459486dd1b5@mail.gmail.com>
In-Reply-To: <20070718021839.GA37935@cdnetworks.co.kr>
References:  <09BFF2FA5EAB4A45B6655E151BBDD9030483F161@NT-IRVA-0750.brcm.ad.broadcom.com> <20070718021839.GA37935@cdnetworks.co.kr>

next in thread | previous in thread | raw e-mail | index | archive | help
On 7/17/07, Pyun YongHyeon <pyunyh@gmail.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
>  > normally
>  > get 3 memory segments (4KB + 4KB + 1KB) on my system, but on another
>  > user's
>  > system he's seeing 2 memory segments (8KB + 1KB).  Is there a
>  > configuration
>  > 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
> in bus_dma_tag_create()).
> 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
> allocator.

I have a patch to make jumbo frames contiguous that will go into HEAD
after 7 branches.

 -Kip



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?b1fa29170707172210r407a30e8x791d3459486dd1b5>