Skip site navigation (1)Skip section navigation (2)
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>