On 10/26/2010 4:26 PM, Dan Pritts wrote: > > On Oct 26, 2010, at 1:56 PM, Eric Chris Garrison wrote: >> >> [r...@rfs4 ~]# dumpcap -w /tmp/ecg1.dumpcap -a duration:60 >> File: /tmp/ecg1.dumpcap >> Packets: 201081 Packets dropped: 28064 > >> So, nothing dropped for a straight iperf test at almost full bandwidth, >> but over 10% dropped at 30Mb/sec for AFS vos moves. > > If you are getting the "10% dropped" number from your wireshark output, > it is a red herring. That is telling you how many packets the kernel > was unable to copy to wireshark, not anything about what goes on on > your network.
Not necessarily. The rx implementation has a single thread that reads all incoming packets and has to manage new rx connections, process all rx packets and either queue them on the appropriate call or respond to them directly, and handle ack/nak processing. There is a lot of overhead that gets in the way of pulling off packets from the wire. The problems get worse as the window size increases. Your File System developers have spent the last couple of months refactoring the source code in order to reduce the overhead. Some of the changes are minor such as avoiding calling gettimeofday() for every packet processed and repeatedly allocating and deallocating the xmit list array. Other changes are more significant relating to how locking is performed, the use of atomic operations, how round trip times are calculated, how timeout periods are handled, under what conditions fast recovery is trigger, and which thread is responsible for transmiting acks/naks. Many of these improvements are now on master and there are more to come in the near future. When the rx listener thread is unable to read packets from the network and those packets are dropped the overall throughput of the rx connection collapses quite rapidly. On master in the src/rx/tests directory is a tool called rxperf that can be used to simulated a variety of rx communication scenarios. It would be interesting to see how rxperf performs across Eric's network path using both 1.4 and master. Note that rxperf may require back porting to 1.4 to get it to build. Jeffrey Altman
signature.asc
Description: OpenPGP digital signature
