Messages in this thread | | | Date | Tue, 13 Oct 1998 19:56:11 +0200 (MET DST) | From | Gerard Roudier <> | Subject | Re: How to invoke burst-read on PCI mapped memory area |
| |
On Tue, 13 Oct 1998, Hiroshi Kawashima wrote:
> Thank you for your suggetion. > > > Even if it is possible, what machanism will maintain coherency between the > > cache and the remote memory which is seen through the system that has been > > described in the initial mail. > > Of course, I understand coherency issue. > > Since this system is early experimental, we force strong limitation to > application programmer (i.e. before reading buffer mapped to remote node's > memory, application explicitly must invalidate cache associated.) > Finally, we will implement coherency mechanism on NIC (hopefully...). > > Also, I understand PCI mastar capable device is the appropriate solution > for these performance issue, but I'd like to try squeeze out performance > from current H/W implementation as possible as I can. > > Before Linux implementation, my colleague wrote very basic device > driver on Windows/NT. On WIndows/NT, he can map such PCI address space > (finally mapped to remote node's memory) as Cachable, > and observed 'Read Multiple' (or 'Read Line' not sure, sorry) transaction > on PCI bus (monitored with PCI analyzer).
If this is possible under Windows/NT, then it is also possible under Linux. Linux-2.1.x provides a user interface to set MTRRs.
I only have data sheets from Intel on Host bridges. In this data sheets only the ability to coalesce writes into a burst is described and is called 'combining'. In the architecture manuals of PII, aligned rep memory copies are also described as able to handle cache lines moves.
Cacheable means at least read-caching. But you can use Write-Through or Write-Back caching. If your application can cope about cache coherency problems, and the host bridges performs prefecthing from PCI address range defined as cachable, then everything will be as fine for you under Linux as under Win/NT.
> So, I'd like to implement same feature (access method) on Linux (if possible).
Based on your description, I think this should be possible. Your driver will certainly have to provide to applications a memory mapping service for the PCI address range that is to be handled from user-land.
Regards, Gerard.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |