Re: [Linux-ia64] Re: 64 Bits DMA Addresses for Alloc Consistent Interfaces.

From: David S. Miller <davem_at_redhat.com>
Date: 2003-05-16 12:32:26
   From: James Bottomley <James.Bottomley@HansenPartnership.com>
   Date: 15 May 2003 21:26:14 -0500
   
   It was my impression that a CPU cache invalidate cycle relinquishes the
   cache line (and thus leaves the line free to be owned by the device). 
   The DMA_TO_DEVICE of dma_sync.. does this, why isn't that sufficient?  I
   grant that CPU does auto ownership, so if the CPU ever touches the data
   again the cache line is pulled back in again.
   
What flushes the cpu cache after the cpu writes to 'buf'
so that the device sees what the CPU wrote there?  Consider
copy-back L2 caches like MIPS has.

   Is the issue that we have no way of preventing the CPU from pulling in
   the cache line if it is referenced?
   
The "issue" is that we need a pci_dma_sync_*_to_device() call added.
We should also remane pci_dma_sync_*() to pci_dma_sync_*_to_cpu()
to make all of the naming consistent and update all the drivers.
Received on Thu May 15 19:35:28 2003

This archive was generated by hypermail 2.1.8 : 2005-08-02 09:20:14 EST