Date: Wed, 18 Jul 2007 11:30:33 -0700 From: "David Christensen" <davidch@broadcom.com> To: "John-Mark Gurney" <gurney_j@resnet.uoregon.edu> Cc: current@freebsd.org Subject: RE: Getting/Forcing Greater than 4KB Buffer Allocations Message-ID: <09BFF2FA5EAB4A45B6655E151BBDD9030483F40F@NT-IRVA-0750.brcm.ad.broadcom.com> In-Reply-To: <20070718004530.GV1221@funkthat.com> References: <09BFF2FA5EAB4A45B6655E151BBDD9030483F161@NT-IRVA-0750.brcm.ad.broadcom.com> <20070718004530.GV1221@funkthat.com>
next in thread | previous in thread | raw e-mail | index | archive | help
> > I'm investigating a problem with my bce driver which occurs=20 > when I ask > > for a jumbo > > mbuf cluster (through m_cljget()). When I map the memory for DMA I > > normally=20 > > get 3 memory segments (4KB + 4KB + 1KB) on my system, but on another > > user's=20 > > 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=20 > > Xeon dual-core processor and has 8GB of RAM, running an=20 > AMD64 version of > > the kernel. >=20 > Is this an issue? If it is, you need to fix your bus_dma_tag_create > calls to set the segment size and count properly. bus_dma will get > you exactly what you ask for, and your driver needs to tell bus_dma > what it can and cannot handle. >=20 I believe my code can handle this correctly but you never know for sure until you're able to test it. Are you saying that I can tell bus_dma=20 that I can only handle 2 segments and essentially force this scenario? Could I force more segments to test a maximum value too? Dave
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?09BFF2FA5EAB4A45B6655E151BBDD9030483F40F>