On Mon, 14 Jun 2004, David Brownell wrote: > Seems like the dma_alloc_coherent() API spec can't be > implemented on such machines then, since it's defined > to return memory(*) such that: > > ... a write by either the device or the processor > can immediately be read by the processor or device > without having to worry about caching effects. > > Seems like the documentation should change to explain > under what circumstances "coherent" memory will exhibit > cache-incoherent behavior, and how to cope with that. > (Then lots of drivers would need to change.) > > OR ... maybe the bug is just that those PPC processors > can't/shouldn't claim to implement that API. At which > point all drivers relying on that API (including all > the USB HCDs and many of the USB drivers) stop working. > > - Dave > > (*) DMA-API.txt uses two terms for this: "coherent" and "consistent". > DMA-mapping.txt only uses "consistent".
That text strikes me as rather ambiguous. Maybe it's intended to mean that a write by either side can be read immediately by the other side, and the values read will be the ones written (i.e., the read won't get stale data from some cache). It doesn't specify what happens to the other data bytes in the same cache line which _weren't_ written -- maybe they'll be messed up. In other words, with "coherent" or "consistent" memory (there is some technical distinction between the two terms but I don't know what it is) you don't have to worry about reading stale data from a cache, but you might still have to worry about data unintentionally being overwritten with garbage. Clearly this is not a tremendously useful guarantee, but I guess it's better than nothing. Maybe someone on linux-mm can clarify things for the rest of us. For anyone interested, this thread started with: http://marc.theaimsgroup.com/?l=linux-usb-devel&m=108728413809788&w=2 Alan Stern ------------------------------------------------------- This SF.Net email is sponsored by The 2004 JavaOne(SM) Conference Learn from the experts at JavaOne(SM), Sun's Worldwide Java Developer Conference, June 28 - July 1 at the Moscone Center in San Francisco, CA REGISTER AND SAVE! http://java.sun.com/javaone/sf Priority Code NWMGYKND _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
