current meaning of BUS_DMA_COHERENT

Warner Losh imp at bsdimp.com
Fri Mar 20 15:12:45 UTC 2015


> On Mar 20, 2015, at 8:27 AM, Ian Lepore <ian at freebsd.org> wrote:
> What we really need is a new type of busdma memory (BUS_DMA_DESCRIPTOR)
> and a special sync call to use in conjunction with it that takes an
> offset and length, and the sync is a single operation, no pre/post
> stuff.  Then you could sync each descriptor immediately before reading
> and writing it, which would translate to a single cacheline flush
> instead of a loop that does all the lines in the whole ring.

We don’t need a special type of memory for this. NetBSD doesn’t have
that. Instead it implements a range on the sync operation. We could easily
just do that. We already have flags to disable bouncing, which is also
required for interacting with descriptor rings.

I’m curious where you need to do both a pre read and a post read before
you read the ring. Why is that needed?

Warner

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 842 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://lists.freebsd.org/pipermail/freebsd-arm/attachments/20150320/6f6502c3/attachment.sig>


More information about the freebsd-arm mailing list