RE: Libraw1394 question
Brought to you by:
aeb,
bencollins
From: Mark K. <mk...@co...> - 2000-05-09 21:38:51
|
Oliver, I'm not clear that the acknowledge packet is the issue because it is hardware generated and returns quite quickly. Generally this doesn't take much extra time, although on an un-optimized bus with the gap count set to 63 it is measurable. We've done some similar work under WinDoze - I don't know how closely it tracks here, but in that environment we were seeing interrupt latencies driving the return of response packets in the order of 1mS, implying the ability to do about only about 1000 I/O's per second between 2 moderately fast PCs. (333/425MHz) Assuming you're seeing something similar under Linux, then I'd expect that you'd get a throughput of about 1000 packets/second * 2K bytes/packet * 8 bits/byte = 16Mb/S, or 2MB/S, roughly similar to the sorts of numbers you seem to be seeing. You could check that this is driven mostly by system latencies by changing you packet sizes to say 1K and 512 bytes and see if the throughput changes roughly linearly. What's the solution? The applications that are driving this pipe need to be able to make multiple requests of the 1394 bus such that the overall system latency gets covered up and data is moving all the time. When you do that you start to see the performance go up significantly. Certainly you'll need a driver stack that supports this cleanly. This sort of issue isn't likely to rear it's ugly head for those applications transferring real-time video data from consumer level camcorders. It is, however, likely to be a big problem for high performance disk drives talking SPB-2. With best regards, Mark -----Original Message----- From: Olivier Daigle [mailto:dai...@el...] Sent: Tuesday, May 09, 2000 1:33 PM To: Ashok Natarajan Cc: Linux1394-devel Subject: Re: Libraw1394 question Hi Ashok, I managed to exchange raw data between 2 computers by using an FCP-like method and libraw1394. Mainly, I copied FCP code and extended it to allow data being transferred by chunks of 2k (instead of 512 bytes with bare FCP code). This was pretty easy. Problem is: there is a long delay between every data transfer and even with fast machines (Pentium III 450MHz) and I can't manage to get data transferred faster than 2.5 Mbytes/sec. By using Frank Bonin's implementation of IP-over-1394 (which use async transactions), I can ftp-transfer as fast as 15Mbytes/sec with slow machines (pentium 200MMX) so I guess I should be able to do as fast as him... I'm working on a way to speed-up transfer because I need at least 12Mbytes/sec. I think the problem is that the code waits for an acknowledge before sending another packet. If you have any other suggestions, please help. Olivier Ashok Natarajan wrote: Hi Olivier, I was also trying to implement the asynchronous data transfer between linux pc's through the 1394 interface.Then i got busy in something else and didnt have time to work on this.From the postings i came to know that u r trying to develop and application to perform the asynchronous tarnasactions.I'll be willing to assist u in testing of u'r code.Do u have any code written at all?. Ashok. _______________________________________________________________________ / Ashok Natarajan | | \ | Research Assistant | __ __ | | | Dept. of ECE | / \/ \ | Some goals are so | | Univ. of Tennessee | | | | worthy,its glorious | |___________________________| \ / | even to fail. | | Ph.no: | \/ | | | (931)-393-7107 (home) | | | | (931)-393-7366 (work) | ana...@ut... | | ___________________________|___________________|_______________________/ -- Olivier Daigle Projet Harfang (514) 396-8800 ext.7699 |