Messages in this thread | | | Date | Sat, 10 Feb 2001 09:48:41 +0100 (CET) | From | Gérard Roudier <> | Subject | Re: [PATCH] starfire reads irq before pci_enable_device. |
| |
On Fri, 9 Feb 2001, Alan Cox wrote:
> > > For non routing paths its virtually free because the DMA forced the lines > > > from cache anyway. > > > > Are you actually sure about this? I thought DMA from PCI devices reached > > the main memory without polluting the L2 cache. Otherwise any large DMA > > transfer would kill the cache (think frame grabbers...) > > DMA to main memory normally invalidates those lines in the CPU cache rather > than the cache snooping and updating its view of them.
In PCI, it is the Memory Write and Invalidate PCI transaction that is intended to allow core-logics to optimize DMA this way. For normal Memory Write PCI transactions or when the core-logic is aliasing MWI to MW, the snooping may well happen. All that stuff, very probably, varies a lot depending on the core-logic.
As we know, in normal PCI, the target is not told about the transaction length prior to the bursting of the data. This makes difficult for a core logic to use cache invalidation rather than dma snooping when a normal MW is used, thus the invention of MWI.
Gérard.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/
| |