
To: Justin T. Gibbs <>
From: Jonathan Stone <jonathan@DSG.Stanford.EDU>
List: tech-kern
Date: 06/11/1998 15:52:38
i wrote:

>       it away for the duration of the transfer, regardless.
>       saving space by eliminating ``unecessary'' duplicated maps


I'm sorry to keep harping on this point, but you keep using the term
"S/G list". I really dont think that's a good idea: it carries over
too much baggage from SCSI controllers.

On some machines, where DMA is non-cache-coherent, the hardware
_forces_ you to keep around a list of the physical buffer pages.
Your goal is to avoid actually building a dmamap for "simple"

The way you do this is to postpone building the map until the driver
calls a callback.


I think it's entirely fair to claim that you roriginal claim is wrong:
there is a severe portability problem with the FreeBSD design in this

I think we need to reach agreement on this point before any further
progress can be made; do you agree to the need to reach agreement?.

I'm thinking about adding a "BUS_DMAMAP_TRIVIAL" flag which lets a
driver and the bus_dma layer conspire to avoid constructing a map, if
and only if *both* the bus_dma layer and the driver dont need the map
info.  I think that's likely to be more successful than your approach.
Perhaps we could talk about that design approach?