At 04:34 PM 7/15/2003, Paul Mackerras wrote: >If you think about it, you will see that if you are doing DMA to an >unaligned buffer, and some other unrelated part of the kernel is >accessing another part of the cache line, you are in trouble no matter >what sequence of cache flushes/invalidates/whatever you do. > >In other words, the driver MUST own the entire extent of all the cache >lines that overlap the DMA buffer. There really is no other solution >on cache-incoherent machines, assuming you want to allow DMA to >proceed in parallel with the CPU executing other arbitrary code, which >is really the whole point of DMA. > >How to achieve that has been the subject of much debate. It's clear >that tweaks to consistent_sync won't do it, though.
So, at least adding an assertion to consistent_sync would be useful debugging feature. E.g. we already have BUG() in consistent_alloc when it called from interrupt context :) Eugene ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/