Call for testing and review, busdma changes

Ian Lepore freebsd at
Sun Dec 30 18:21:38 UTC 2012

On Mon, 2012-12-24 at 22:13 -0500, Scott Long wrote:
> >>> 
> >>> Still unresolved is what to do about the remaining cases -- attempts to
> >>> do dma in arbitrary buffers not obtained from bus_dmamem_alloc() which
> >>> are not aligned and padded appropriately.  There was some discussion a
> >>> while back, but no clear resolution.  I decided not to get bogged down
> >>> by that fact and to fix the mbuf and allocated-buffer situations that we
> >>> know how to deal with for now.
> >> 
> Why would these allocations not be handled as normal dynamic buffers
> would with bus_dmamap_load()?
> Scott

That's my point -- for "normal dynamic buffers" (that is, they weren't
obtained from bus_dmamem_alloc() and they aren't mbufs) which can have
arbitrary alignment and padding in relation to cache line boundaries --
we don't handle them correctly now unless they're accidentally already
aligned and sized to the right boundaries.  What's unresolved is how to
handle them correctly if they're not aligned/padded, that is, what to do
about them that avoids needing a partial cacheline flush at sync time.

-- Ian

More information about the freebsd-arm mailing list