Re: PCI DMA to small buffers on cache-incoherent arch

Oliver Neukum
2002-06-09T23:26:40Z

Am Sonntag, 9. Juni 2002 10:48 schrieb Russell King:
> On Sun, Jun 09, 2002 at 02:33:35AM -0400, Albert D. Cahalan wrote:
> > For device --> memory DMA:
> >
> > 1. write back cache lines that cross unaligned boundries
>
> What if some of the cache lines inside the DMA region are dirty and...
>
> > 2. start the DMA
>
> get evicted now when the CPU is doing something else?
>
> > 3. invalidate the above cache lines
> > 4. invalidate cache lines that are fully inside the DMA
>
> You really need to:
>
> 1. write back cache lines that cross unaligned boundries
> 3. invalidate the above cache lines
> 2. start the DMA
> 4. invalidate cache lines that are fully inside the DMA

Starting DMA has to be the very last step.

Regards
Oliver