Date: Wed, 18 Jul 2007 11:18:39 +0900 From: Pyun YongHyeon <pyunyh@gmail.com> To: David Christensen <davidch@broadcom.com> Cc: current@freebsd.org Subject: Re: Getting/Forcing Greater than 4KB Buffer Allocations Message-ID: <20070718021839.GA37935@cdnetworks.co.kr> In-Reply-To: <09BFF2FA5EAB4A45B6655E151BBDD9030483F161@NT-IRVA-0750.brcm.ad.broadcom.com> References: <09BFF2FA5EAB4A45B6655E151BBDD9030483F161@NT-IRVA-0750.brcm.ad.broadcom.com>
next in thread | previous in thread | raw e-mail | index | archive | help
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. -- Regards, Pyun YongHyeon
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070718021839.GA37935>
