irtty + actisys -> irtty + actisys Note : IrTTY seems to introduce artifacts 1) NEW -> NEW ------------- [Bidirectional big packets] ./irdaspray.magic -n 250 -b 2000 Transmitted 500000 bytes in 102.352667 seconds (4.771 kbytes/s) Received 500000 bytes in 107.362140 seconds (4.548 kbytes/s) Transmitted 500000 bytes in 102.352443 seconds (4.771 kbytes/s) Received 500000 bytes in 107.382253 seconds (4.547 kbytes/s) --- same --- [Bidirectional big packets fragmented] ./irdaspray.magic -n 50 -b 8000 Transmitted 400000 bytes in 87.432554 seconds (4.468 kbytes/s) Received 400000 bytes in 92.862035 seconds (4.207 kbytes/s) Transmitted 400000 bytes in 87.432312 seconds (4.468 kbytes/s) Received 400000 bytes in 92.861719 seconds (4.207 kbytes/s) --- same --- [Bidirectional big + small packets fragmented] ./irdaspray.magic -n 50 -b 8192 Transmitted 409600 bytes in 88.882333 seconds (4.500 kbytes/s) Received 409600 bytes in 93.882008 seconds (4.261 kbytes/s) Transmitted 409600 bytes in 88.882171 seconds (4.500 kbytes/s) Received 409600 bytes in 93.881760 seconds (4.261 kbytes/s) --- same --- [Bidirectional small packets] ./irdaspray.magic -n 2500 -b 10 ./irdaspray.magic -n 5000 -b 10 Transmitted 50000 bytes in 21.400196 seconds (2.282 kbytes/s) Received 50000 bytes in 21.470069 seconds (2.274 kbytes/s) Transmitted 50000 bytes in 21.390227 seconds (2.283 kbytes/s) Received 50000 bytes in 21.479970 seconds (2.273 kbytes/s) ./irdaspray.magic -n 100000 -b 10 Transmitted 1000000 bytes in 445.369010 seconds (2.193 kbytes/s) Received 1000000 bytes in 445.448913 seconds (2.192 kbytes/s) --- higher - but measurement jitter due to TTY layer --- [Unidirectional big packets] ./irdaspray.magic -d -n 500 -b 2000 Transmitted 1000000 bytes in 124.453102 seconds (7.847 kbytes/s) Transmitted 1000000 bytes in 124.962752 seconds (7.815 kbytes/s) ./irdaspray.magic -d -n 1000 -b 2000 Transmitted 2000000 bytes in 256.415939 seconds (7.617 kbytes/s) --- lower - probably lower socket buffer --- [Unidirectional small packets] ./irdaspray.magic -d -n 5000 -b 10 Transmitted 50000 bytes in 21.370159 seconds (2.285 kbytes/s) Transmitted 50000 bytes in 14.250009 seconds (3.427 kbytes/s) --- higher --- [Bidirectional big packets fragmented - two concurent sockets] ./irdaspray.magic.double -n 20 -b 8000 Transmitted 160000 bytes in 60.041846 seconds (2.602 kbytes/s) Transmitted 160000 bytes in 67.991889 seconds (2.298 kbytes/s) Received 160000 bytes in 69.341923 seconds (2.253 kbytes/s) Received 160000 bytes in 74.261458 seconds (2.104 kbytes/s) --- it works --- [Bidirectional small packets - two concurent sockets] ./irdaspray.magic.double -n 1000 -b 10 Transmitted 10000 bytes in 8.319992 seconds (1.174 kbytes/s) Received 10000 bytes in 8.459800 seconds (1.154 kbytes/s) Transmitted 10000 bytes in 8.559891 seconds (1.141 kbytes/s) Received 10000 bytes in 8.629769 seconds (1.132 kbytes/s) --- more disparity in Rx - bummer - but less in Tx --- [Unidirectional big packets - two concurent sockets] ./irdaspray.magic.double -d -n 250 -b 2000 Transmitted 500000 bytes in 119.352978 seconds (4.091 kbytes/s) Transmitted 500000 bytes in 124.963057 seconds (3.907 kbytes/s) --- less disparity in Tx, slightly faster --- [Unidirectional small packets - two concurent sockets] ./irdaspray.magic.double -d -n 2500 -b 10 Transmitted 25000 bytes in 14.190089 seconds (1.721 kbytes/s) Transmitted 25000 bytes in 14.269984 seconds (1.711 kbytes/s) --- more disparity - bummer --- [Unidirectional small packets] time ./irscanfr < irdaspray.magic.c irdaspray.magic.c 0.010u 0.000s 0:04.04 0.2% 0+0k 0+0io 81pf+0w 0.000u 0.000s 0:04.00 0.0% 0+0k 0+0io 81pf+0w 0.000u 0.010s 0:03.74 0.2% 0+0k 0+0io 81pf+0w [Unidirectional small packets] time ./irscanfr < patch-2.4.17 0.010u 0.180s 5:01.33 0.0% 0+0k 0+0io 81pf+0w --- lowest --- [IrNET no compression (big packets)] pppd /dev/irnet 9600 local noauth nobsdcomp nodeflate netperf -H laureline -l 100 -f k TCP STREAM TEST to laureline Recv Send Send Socket Socket Message Elapsed Size Size Size Time Throughput bytes bytes bytes secs. 10^3bits/sec 87380 16384 16384 103.13 66.49 [IrNET compressed (small packets)] pppd /dev/irnet 9600 local noauth netperf -H laureline -l 100 -f k TCP STREAM TEST to laureline Recv Send Send Socket Socket Message Elapsed Size Size Size Time Throughput bytes bytes bytes secs. 10^3bits/sec 87380 16384 16384 100.24 1720.73 [PPP/IrComm no compression (big packets)] pppd /dev/ircomm0 9600 local noauth nobsdcomp nodeflate netperf -H laureline -l 200 -f k TCP STREAM TEST to laureline Recv Send Send Socket Socket Message Elapsed Size Size Size Time Throughput bytes bytes bytes secs. 10^3bits/sec 87380 16384 16384 204.99 57.47 --- same - less latency --- [PPP/IrComm compressed (small packets)] pppd /dev/ircomm0 9600 local noauth netperf -H laureline -l 200 -f k TCP STREAM TEST to laureline Recv Send Send Socket Socket Message Elapsed Size Size Size Time Throughput bytes bytes bytes secs. 10^3bits/sec 87380 16384 16384 200.22 2724.97 --- IrComm merge small packets, explaining higher perf --- --- same --- [PPP/IrLPT no compression (big packets)] pppd /dev/irlpt0 9600 local nocrtscts noauth nobsdcomp nodeflate netperf -H laureline -l 200 -f k TCP STREAM TEST to laureline Recv Send Send Socket Socket Message Elapsed Size Size Size Time Throughput bytes bytes bytes secs. 10^3bits/sec 87380 16384 16384 204.41 62.28 --- higher ? no reason for that --- 2) OLD -> OLD ------------- [Bidirectional big packets] ./irdaspray.magic -n 100 -b 2000 Transmitted 200000 bytes in 33.560704 seconds (5.820 kbytes/s) Received 200000 bytes in 42.860914 seconds (4.557 kbytes/s) ./irdaspray.magic -n 250 -b 2000 Transmitted 500000 bytes in 98.921581 seconds (4.936 kbytes/s) Received 500000 bytes in 107.381703 seconds (4.547 kbytes/s) [Bidirectional big packets fragmented] ./irdaspray.magic -n 20 -b 8000 Transmitted 160000 bytes in 26.060595 seconds (5.996 kbytes/s) Received 160000 bytes in 37.060950 seconds (4.216 kbytes/s) ./irdaspray.magic -n 50 -b 8000 Transmitted 400000 bytes in 81.861597 seconds (4.772 kbytes/s) Received 400000 bytes in 92.861674 seconds (4.207 kbytes/s) [Bidirectional big + small packets fragmented] ./irdaspray.magic -n 20 -b 8192 Transmitted 163840 bytes in 30.100361 seconds (5.316 kbytes/s) Received 163840 bytes in 37.480633 seconds (4.269 kbytes/s) ./irdaspray.magic -n 50 -b 8192 Transmitted 409600 bytes in 86.501380 seconds (4.624 kbytes/s) Received 409600 bytes in 93.881719 seconds (4.261 kbytes/s) [Bidirectional small packets] ./irdaspray.magic -n 1000 -b 10 Transmitted 10000 bytes in 4.860130 seconds (2.009 kbytes/s) Received 10000 bytes in 4.989955 seconds (1.957 kbytes/s) Transmitted 10000 bytes in 5.649592 seconds (1.729 kbytes/s) Received 10000 bytes in 5.729661 seconds (1.704 kbytes/s) Transmitted 10000 bytes in 5.649780 seconds (1.728 kbytes/s) Received 10000 bytes in 5.729661 seconds (1.704 kbytes/s) Transmitted 10000 bytes in 4.599840 seconds (2.123 kbytes/s) Received 10000 bytes in 4.929715 seconds (1.981 kbytes/s) Transmitted 10000 bytes in 4.419890 seconds (2.209 kbytes/s) Received 10000 bytes in 4.529702 seconds (2.156 kbytes/s) --- 5 run, wide variation of results --- ./irdaspray.magic -n 2500 -b 10 Transmitted 25000 bytes in 11.370271 seconds (2.147 kbytes/s) Received 25000 bytes in 11.440198 seconds (2.134 kbytes/s) ./irdaspray.magic -n 5000 -b 10 Transmitted 50000 bytes in 28.460324 seconds (1.716 kbytes/s) Received 50000 bytes in 28.610109 seconds (1.707 kbytes/s) --- Obvious : something is fishy - Suspect TTY jitter --- [Unidirectional big packets] ./irdaspray.magic -d -n 500 -b 2000 Transmitted 1000000 bytes in 120.221968 seconds (8.123 kbytes/s) ./irdaspray.magic -d -n 1000 -b 2000 Transmitted 2000000 bytes in 243.325466 seconds (8.027 kbytes/s) [Unidirectional small packets] ./irdaspray.magic -d -n 5000 -b 10 Transmitted 50000 bytes in 32.560314 seconds (1.500 kbytes/s) [Bidirectional big packets fragmented - two concurent sockets] ./irdaspray.magic.double -n 20 -b 8000 Transmitted 160000 bytes in 28.430191 seconds (5.496 kbytes/s) Received 160000 bytes in 37.010631 seconds (4.222 kbytes/s) [Bidirectional small packets - two concurent sockets] ./irdaspray.magic.double -n 1000 -b 10 Transmitted 10000 bytes in 8.299710 seconds (1.177 kbytes/s) Received 10000 bytes in 8.499881 seconds (1.149 kbytes/s) Transmitted 10000 bytes in 8.569651 seconds (1.140 kbytes/s) Received 10000 bytes in 8.659666 seconds (1.128 kbytes/s) [Unidirectional big packets - two concurent sockets] ./irdaspray.magic.double -d -n 250 -b 2000 Transmitted 500000 bytes in 111.562061 seconds (4.377 kbytes/s) Transmitted 500000 bytes in 125.332069 seconds (3.896 kbytes/s) [Unidirectional small packets - two concurent sockets] ./irdaspray.magic.double -d -n 2500 -b 10 Transmitted 25000 bytes in 14.229752 seconds (1.716 kbytes/s) Transmitted 25000 bytes in 14.270088 seconds (1.711 kbytes/s) [Unidirectional small packets] time ./irscanfr < irdaspray.magic.c irdaspray.magic.c 0.010u 0.000s 0:04.84 0.2% 0+0k 0+0io 81pf+0w 0.000u 0.000s 0:04.79 0.0% 0+0k 0+0io 82pf+0w 0.000u 0.010s 0:04.72 0.2% 0+0k 0+0io 82pf+0w [Unidirectional small packets - two concurent sockets] ./go2.sh time ./irscanfr < irdaspray.magic.c irdaspray.magic.c & time ./irscanfr < irdaspray.magic.c irdaspray.magic.c & real 0m7.415s real 0m7.521s user 0m0.000s user 0m0.010s sys 0m0.000s sys 0m0.000s ------------------ real 0m7.379s real 0m7.420s user 0m0.000s user 0m0.040s sys 0m0.090s sys 0m0.160s [Unidirectional small packets] time ./irscanfr < patch-2.4.17 0.350u 1.090s 6:35.37 0.3% 0+0k 0+0io 81pf+0w [IrNET no compression (big packets)] pppd /dev/irnet 9600 local noauth nobsdcomp nodeflate netperf -H laureline -l 100 -f k TCP STREAM TEST to laureline Recv Send Send Socket Socket Message Elapsed Size Size Size Time Throughput bytes bytes bytes secs. 10^3bits/sec 87380 16384 16384 103.13 66.49 [IrNET compressed (small packets)] pppd /dev/irnet 9600 local noauth netperf -H laureline -l 200 -f k --- IrComm/IrLPT tests done with some race condition fixes --- --- Well... Got fed up of rebooting my computer... --- [PPP/IrComm no compression (big packets)] pppd /dev/ircomm0 9600 local noauth nobsdcomp nodeflate netperf -H laureline -l 200 -f k TCP STREAM TEST to laureline Recv Send Send Socket Socket Message Elapsed Size Size Size Time Throughput bytes bytes bytes secs. 10^3bits/sec 87380 16384 16384 212.86 57.37 --- notice huge latency at end of test (12s) => too many buffers --- [PPP/IrComm compressed (small packets)] pppd /dev/ircomm0 9600 local noauth netperf -H laureline -l 200 -f k TCP STREAM TEST to laureline Recv Send Send Socket Socket Message Elapsed Size Size Size Time Throughput bytes bytes bytes secs. 10^3bits/sec 87380 16384 16384 200.28 2657.16 --- IrComm merge small packets, explaining higher perf --- [PPP/IrLPT no compression (big packets)] pppd /dev/irlpt0 9600 local nocrtscts noauth nobsdcomp nodeflate netperf -H laureline -l 200 -f k TCP STREAM TEST to laureline Recv Send Send Socket Socket Message Elapsed Size Size Size Time Throughput bytes bytes bytes secs. 10^3bits/sec 87380 16384 16384 203.17 60.44 3) NEW -> OLD ------------- [Bidirectional big packets] ./irdaspray.magic -n 100 -b 2000 Transmitted 200000 bytes in 38.710979 seconds (5.045 kbytes/s) Received 200000 bytes in 42.860408 seconds (4.557 kbytes/s) ./irdaspray.magic -n 250 -b 2000 Transmitted 500000 bytes in 102.352242 seconds (4.771 kbytes/s) Received 500000 bytes in 107.361686 seconds (4.548 kbytes/s) [Bidirectional big packets fragmented] ./irdaspray.magic -n 50 -b 8000 Transmitted 400000 bytes in 87.432278 seconds (4.468 kbytes/s) Received 400000 bytes in 92.861714 seconds (4.207 kbytes/s) [Bidirectional big + small packets fragmented] ./irdaspray.magic -n 20 -b 8192 Transmitted 163840 bytes in 32.480918 seconds (4.926 kbytes/s) Received 163840 bytes in 37.480555 seconds (4.269 kbytes/s) ./irdaspray.magic -n 50 -b 8192 Transmitted 409600 bytes in 88.882095 seconds (4.500 kbytes/s) Received 409600 bytes in 93.881654 seconds (4.261 kbytes/s) [Bidirectional small packets] ./irdaspray.magic -n 1000 -b 10 Transmitted 10000 bytes in 4.239831 seconds (2.303 kbytes/s) Received 10000 bytes in 4.319554 seconds (2.261 kbytes/s) ./irdaspray.magic -n 2500 -b 10 Transmitted 25000 bytes in 10.689976 seconds (2.284 kbytes/s) Received 25000 bytes in 10.769678 seconds (2.267 kbytes/s) ./irdaspray.magic -n 5000 -b 10 Transmitted 50000 bytes in 21.430558 seconds (2.278 kbytes/s) Received 50000 bytes in 21.510352 seconds (2.270 kbytes/s) [Unidirectional big packets] ./irdaspray.magic -d -n 500 -b 2000 Transmitted 1000000 bytes in 126.002682 seconds (7.750 kbytes/s) ./irdaspray.magic -d -n 1000 -b 2000 Transmitted 2000000 bytes in 252.465198 seconds (7.736 kbytes/s) [Unidirectional small packets] ./irdaspray.magic -d -n 5000 -b 10 Transmitted 50000 bytes in 18.160018 seconds (2.689 kbytes/s) [Bidirectional big packets fragmented - two concurent sockets] ./irdaspray.magic.double -n 20 -b 8000 Transmitted 160000 bytes in 60.581737 seconds (2.579 kbytes/s) Transmitted 160000 bytes in 68.621632 seconds (2.277 kbytes/s) Received 160000 bytes in 69.981833 seconds (2.233 kbytes/s) Received 160000 bytes in 74.961393 seconds (2.084 kbytes/s) [Bidirectional small packets - two concurent sockets] ./irdaspray.magic.double -n 1000 -b 10 Transmitted 10000 bytes in 11.240275 seconds (0.869 kbytes/s) Received 10000 bytes in 11.360209 seconds (0.860 kbytes/s) Transmitted 10000 bytes in 11.361328 seconds (0.860 kbytes/s) Received 10000 bytes in 11.480160 seconds (0.851 kbytes/s) [Unidirectional big packets - two concurent sockets] ./irdaspray.magic.double -d -n 250 -b 2000 Transmitted 500000 bytes in 120.372619 seconds (4.056 kbytes/s) Transmitted 500000 bytes in 124.452717 seconds (3.923 kbytes/s) ./irdaspray.magic.double -d -n 500 -b 2000 Transmitted 1000000 bytes in 247.874857 seconds (3.940 kbytes/s) Transmitted 1000000 bytes in 252.464947 seconds (3.868 kbytes/s) [Unidirectional small packets - two concurent sockets] ./irdaspray.magic.double -d -n 2500 -b 10 Transmitted 25000 bytes in 14.529973 seconds (1.680 kbytes/s) Transmitted 25000 bytes in 14.569933 seconds (1.676 kbytes/s) [Unidirectional small packets] time ./irscanfr < irdaspray.magic.c irdaspray.magic.c 0.000u 0.000s 0:03.97 0.0% 0+0k 0+0io 81pf+0w 0.000u 0.010s 0:04.55 0.2% 0+0k 0+0io 81pf+0w 0.100u 0.220s 0:06.02 5.3% 0+0k 0+0io 82pf+0w 0.000u 0.010s 0:05.36 0.1% 0+0k 0+0io 82pf+0w [Unidirectional small packets - two concurent sockets] ./go2.sh time ./irscanfr < irdaspray.magic.c irdaspray.magic.c & time ./irscanfr < irdaspray.magic.c irdaspray.magic.c & real 0m8.738s real 0m8.868s user 0m0.000s user 0m0.000s sys 0m0.010s sys 0m0.010s ------------------ real 0m8.659s real 0m8.689s user 0m0.000s user 0m0.010s sys 0m0.010s sys 0m0.000s [Unidirectional small packets] time ./irscanfr < patch-2.4.17 0.370u 1.360s 5:11.48 0.5% 0+0k 0+0io 82pf+0w 0.440u 1.520s 5:38.03 0.5% 0+0k 0+0io 81pf+0w 0.350u 1.000s 4:50.97 0.4% 0+0k 0+0io 81pf+0w 4) OLD -> NEW ------------- [Bidirectional big packets] ./irdaspray.magic -n 250 -b 2000 Transmitted 500000 bytes in 98.931553 seconds (4.936 kbytes/s) Received 500000 bytes in 107.381761 seconds (4.547 kbytes/s) [Bidirectional big packets fragmented] ./irdaspray.magic -n 50 -b 8000 Transmitted 400000 bytes in 81.861471 seconds (4.772 kbytes/s) Received 400000 bytes in 92.861739 seconds (4.207 kbytes/s) [Bidirectional big + small packets fragmented] ./irdaspray.magic -n 50 -b 8192 Transmitted 409600 bytes in 86.931555 seconds (4.601 kbytes/s) Received 409600 bytes in 94.371727 seconds (4.239 kbytes/s) --- lower --- [Bidirectional small packets] ./irdaspray.magic -n 2500 -b 10 Transmitted 25000 bytes in 10.659707 seconds (2.290 kbytes/s) Received 25000 bytes in 10.749704 seconds (2.271 kbytes/s) ./irdaspray.magic -n 5000 -b 10 Transmitted 50000 bytes in 28.450300 seconds (1.716 kbytes/s) Received 50000 bytes in 28.610100 seconds (1.707 kbytes/s) Transmitted 50000 bytes in 21.340207 seconds (2.288 kbytes/s) Received 50000 bytes in 21.460067 seconds (2.275 kbytes/s) --- much higher --- [Unidirectional big packets] ./irdaspray.magic -d -n 500 -b 2000 Transmitted 1000000 bytes in 122.422117 seconds (7.977 kbytes/s) ./irdaspray.magic -d -n 1000 -b 2000 Transmitted 2000000 bytes in 248.904953 seconds (7.847 kbytes/s) --- lower : socket buffer ? --- [Unidirectional small packets] ./irdaspray.magic -d -n 5000 -b 10 Transmitted 50000 bytes in 15.560090 seconds (3.138 kbytes/s) --- much higher --- [Bidirectional big packets fragmented - two concurent sockets] ./irdaspray.magic.double -n 20 -b 8000 Transmitted 160000 bytes in 28.430160 seconds (5.496 kbytes/s) Received 160000 bytes in 37.060548 seconds (4.216 kbytes/s) [Bidirectional small packets - two concurent sockets] ./irdaspray.magic.double -n 1000 -b 10 Transmitted 10000 bytes in 7.749752 seconds (1.260 kbytes/s) Received 10000 bytes in 8.039816 seconds (1.215 kbytes/s) Transmitted 10000 bytes in 8.490054 seconds (1.150 kbytes/s) Received 10000 bytes in 8.639715 seconds (1.130 kbytes/s) --- higher ; but higher disparity --- [Unidirectional big packets - two concurent sockets] ./irdaspray.magic.double -d -n 250 -b 2000 Transmitted 500000 bytes in 114.261812 seconds (4.273 kbytes/s) Transmitted 500000 bytes in 120.892099 seconds (4.039 kbytes/s) --- higher --- [Unidirectional small packets - two concurent sockets] ./irdaspray.magic.double -d -n 2500 -b 10 Transmitted 25000 bytes in 14.919704 seconds (1.636 kbytes/s) Transmitted 25000 bytes in 15.090020 seconds (1.618 kbytes/s) --- lower --- [Unidirectional small packets] time ./irscanfr < irdaspray.magic.c irdaspray.magic.c 0.010u 0.110s 0:05.31 2.2% 0+0k 0+0io 81pf+0w 0.000u 0.000s 0:05.15 0.0% 0+0k 0+0io 81pf+0w [Unidirectional small packets] time ./irscanfr < patch-2.4.17 0.340u 0.750s 5:49.80 0.3% 0+0k 0+0io 81pf+0w --- lower ---