On Mon, Nov 29, 2010 at 04:48:50PM -0500, Nikolaus Rath wrote: > > You'll have to go to kernel space, but yes, it's possible. Not all > > chipsets support this functionality (peer to peer transfers) efficiently, > > and it may be more efficient for you to write to host memory and then > > read from host memory. > > My main concern is latency. Input + processing (by the GPU) + output of > a data set should take in the order of 20 us, so my feeling is that I > should rather avoid the host memory. > > Can you tell me how to find out if a given chipset has the required > functionality? Is there a technical term for that I could look for in > the specs, or is it reported somewhere in /sys or /proc when I have > installed the card? Most chipsets don't talk about peer-to-peer transfers. It's something you'll have to try and see. > >> I already found out that I can connect the PXI bus to either the PCI or > >> PCI Express bus of the host computer using a bus extender. Is there a > >> difference between these two variants as far as communicating with other > >> PCIe cards is concerned? > > > > It depends very much on the chipset involved. It probably doesn't > > make a big difference since you'll be going through a PCI<->PCIe bridge > > either way. > > Ah, so if the chipsets of the two cards support device to device > transfers, then it will be possible no matter how I join the buses? It's up to the chipset on the motherboard ... there's not usually an issue with the individual cards involved. > Wouldn't the pxi -> bus extender -> pci -> bridge -> PCIe path involve > more latency than the pxi -> bus extender -> PCIe path? Ah, I didn't realise what a PXI card was ... here's how I understand the two options you have: root complex --> PCIe extender --> PXI card root complex --> PCIe-PCI bridge --> PCI extender --> PXI card There's a PCIe-PCI bridge involved in both cases, but there's one fewer bus segment involved if you're using the PCIe extender card. > > The latency will all be in the setup. You only want to transfer 180 > > bytes, and even the 33MHz, 32bit PCI bus can transfer that much data > > in under two microseconds. > > Yes, that's what I expected. But what is a reasonable time for the > setup? Hard to say; you need to figure out how the capture card is going to notify the processing card that there's new data to be processed. -- Matthew Wilcox Intel Open Source Technology Centre "Bill, look, we understand that you're interested in selling us this operating system, but compare it to ours. We can't possibly take such a retrograde step." -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html