How to invoke burst-read on PCI mapped memory area

Hiroshi Kawashima (kei@sm.sony.co.jp)
Mon, 12 Oct 98 19:08:35 +0900


Hello.

I have question about how can I invoke burst-read on PCI mapped memory
space. (on Linux/i386 kernel 2.0.X)

Let me explain background of this question as follows:
We are developing special network card to enable high-speed interconnet
between commodity PCs (aka Commodity PC Cluster system).
We have developped NIC, device driver, messaging systems, graphics/imaging
application run on this cluster system. To achieve high-speed/low-latency
data/messaging transfer between remote user processes, this NIC (on PCI bus)
has special feature. NIC has address translation table on itself
to enable address translation from local PCI address space into
remote node's memory transaction.
So this NIC works like remote-PCI to remote-PCI bridge.
Application program is able to access remote node's memory without any
software intervention.
To implement these, we wrote simple device driver using
remap_page_range() to map remote node's memory (through local PCI space)
to local user process's virtual memory space.

Right now, everything works fine other than performance.
PCI space is mapped as Un-Cached by default, so all read transaction to
remote memory is invoked as Single-Read (non-burst read). Of course,
this heavily impacts perfoemance.

So my question is :
* Is there any way to invoke Burst-Read transaction on PCI from CPU
on Linux/i386 kernel 2.0.X ?
* Is there any way to enable cache attribute on PCI memory space ?

Any suggestion or information is helpful for us.

Thank you in advance!!

Hiroshi Kawashima

-
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/