Re: Direct card to card transfer

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Matthew Wilcox <matthew@xxxxxx> writes:
> 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.

Oh my. That sounds like it's going to be quite an ordeal. But thanks for
the warning :-).


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

I plan to do entirely without notification. The capture card will write
samples at a fixed rate (say 100 kHz), and the processing card will just
process the most recent sample that's available. If a sample is
processed twice or skipped, that's not a problem.

It would be nice if I could just initialize the transfer once and then
keep transmitting for the entire data set (that will be about 20 ms),
but I think this is not going to work because I need a second data path
that takes the processed from the processing card and writes it into an
output card.

Is there no defined number of "steps" that have to be taken to
setup a transfer that I could multiply by the bus frequency or something
like that?


Best,

   -Nikolaus

-- 
 ÂTime flies like an arrow, fruit flies like a Banana.Â

  PGP fingerprint: 5B93 61F8 4EA2 E279 ABF6  02CF A9AD B7F8 AE4E 425C

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


[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux