Getting/Forcing Greater than 4KB Buffer Allocations
David Christensen
davidch at broadcom.com
Wed Jul 18 18:30:45 UTC 2007
> > 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.
>
> 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.
>
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
that I can only handle 2 segments and essentially force this scenario?
Could I force more segments to test a maximum value too?
Dave
More information about the freebsd-current
mailing list