=== TCP out-of-order receive dstat test logs ===
The setup is same as [[.:benchmark|TCP Window Size and RX Csum Offload Benchmark]] except with following netem parameters bind to the server interface.
tc qdisc add dev eth0 root netem loss 0.3% 25% duplicate 1% delay 10ms reorder 25% 50%
Following test shows the result of this patch:
http://git.etherboot.org/?p=people/cooldavid/gpxe.git;a=commitdiff;h=78c30a86d60de1641595282a6333b3665c2cb091
== ''datat'' output on server before patch, with rxcso, 64k win ==
----total-cpu-usage---- -dsk/total- --net/eth0- ---paging-- ---system--
usr sys idl wai hiq siq| read writ| recv send| in out | int csw
2 0 98 0 0 0| 0 0 |6864B 154k| 0 0 |1187 1288
2 0 98 0 0 0| 0 0 |5148B 115k| 0 0 |1072 1322
1 0 99 0 0 0| 0 120k| 14k 328k| 0 0 |1274 1375
1 0 99 0 0 0| 0 0 | 11k 245k| 0 0 |1157 1322
1 1 98 0 0 0| 0 0 | 12k 273k| 0 0 |1265 1349
1 0 99 0 0 0| 0 0 |6996B 157k| 0 0 |1074 1314
1 1 98 0 0 0| 0 0 |7788B 174k| 0 0 |1166 1337
1 0 98 0 0 0| 0 0 |5082B 114k| 0 0 |1082 1264
1 0 98 0 0 0| 0 0 |8316B 186k| 0 0 |1192 1302
1 0 99 0 0 0| 0 0 |8976B 201k| 0 0 |1171 1300
1 1 98 0 0 0| 0 0 | 13k 288k| 0 0 |1247 1337
1 0 98 0 0 0| 0 0 | 10k 235k| 0 0 |1201 1343
1 1 98 0 0 0| 0 0 |6138B 138k| 0 0 |1170 1321
2 0 98 0 0 0| 0 0 |5346B 120k| 0 0 |1142 1287
2 1 98 0 0 0| 0 0 |7260B 163k| 0 0 |1227 1354
2 0 98 0 0 0| 0 0 |8580B 192k| 0 0 |1238 1322
2 0 98 0 0 0| 0 0 |9174B 206k| 0 0 |1214 1328
2 0 98 0 0 0| 0 104k|6996B 157k| 0 0 |1181 1293
2 0 97 0 0 0| 0 0 |7326B 164k| 0 0 |1203 1325
1 0 98 0 0 0| 0 0 |3234B 72k| 0 0 |1068 1282
2 0 98 0 0 0| 0 0 | 11k 248k| 0 0 |1322 1350
1 0 98 0 0 0| 0 0 |7062B 158k| 0 0 |1118 1301
2 0 98 0 0 0| 0 0 |7458B 166k| 0 0 |1185 1327
2 0 98 0 0 0| 0 0 |9570B 213k| 0 0 |1210 1297
2 0 98 0 0 0| 0 0 |7722B 173k| 0 0 |1221 1323
1 0 98 0 0 0| 0 0 |7986B 179k| 0 0 |1163 1316
2 1 98 0 0 0| 0 0 |9240B 207k| 0 0 |1230 1324
2 0 98 0 0 0| 0 56k|3828B 86k| 0 0 |1074 1259
2 0 98 0 0 0| 0 0 |8184B 183k| 0 0 |1181 1368
2 0 97 0 0 0| 0 0 | 15k 347k| 0 0 |1337 1328
1 0 98 0 0 0| 0 0 |9834B 220k| 0 0 |1274 1367
2 0 98 0 0 0| 0 0 |8382B 188k| 0 0 |1160 1310
2 0 98 0 0 0| 0 112k| 16k 371k| 0 0 |1436 1375
2 0 98 0 0 0| 0 0 | 12k 275k| 0 0 |1228 1285
1 0 98 0 0 0| 0 0 | 15k 339k| 0 0 |1314 1336
2 0 98 0 0 0| 0 0 | 16k 361k| 0 0 |1330 1321
2 0 98 0 0 0| 0 0 | 10k 234k| 0 0 |1243 1347
1 1 98 0 0 0| 0 0 |2970B 67k| 0 0 | 984 1236
1 0 98 0 0 0| 0 0 |6600B 148k| 0 0 |1156 1304
2 0 98 0 0 0| 0 0 |3432B 77k| 0 0 |1053 1289
2 0 98 0 0 0| 0 0 | 11k 260k| 0 0 |1309 1338
2 0 98 0 0 0| 0 0 |8910B 200k| 0 0 |1212 1350
2 0 98 0 0 0| 0 0 | 12k 268k| 0 0 |1275 1330
2 0 97 0 0 0| 0 0 |8712B 195k| 0 0 |1160 1263
1 0 98 0 0 0| 0 40k| 21k 479k| 0 0 |1486 1552
1 0 98 0 0 0| 0 0 | 13k 288k| 0 0 |1225 1285
2 0 98 0 0 0| 0 0 | 14k 330k| 0 0 |1333 1283
2 0 98 0 0 0| 0 0 |7722B 173k| 0 0 |1124 1314
1 1 98 0 0 0| 0 0 | 10k 237k| 0 0 |1191 1325
2 0 98 0 0 0| 0 0 | 14k 321k| 0 0 |1226 1285
2 0 98 0 0 0| 0 24k|6138B 138k| 0 0 |1198 1312
1 0 98 0 0 0| 0 0 | 10k 232k| 0 0 |1167 1315
1 0 98 0 0 0| 0 0 |6930B 155k| 0 0 |1134 1319
2 1 97 0 0 0|8192B 0 |8646B 194k| 0 0 |1231 1339
1 0 98 0 0 0| 0 0 | 13k 306k| 0 0 |1321 1320
1 1 98 0 0 0| 0 0 |5082B 114k| 0 0 |1084 1307
4 0 95 0 0 0| 0 88k|9834B 220k| 0 0 |1417 1366
1 0 98 0 0 0| 0 0 |6600B 148k| 0 0 |1124 1311
2 0 98 0 0 0| 0 0 |8910B 200k| 0 0 |1239 1348
2 0 98 0 0 0| 0 0 | 10k 234k| 0 0 |1286 1409
1 0 98 0 0 0| 0 0 | 11k 241k| 0 0 |1283 1348
2 0 98 0 0 0| 0 0 |9834B 220k| 0 0 |1235 1340
1 0 98 0 0 0| 0 88k| 14k 328k| 0 0 |1290 1321
1 0 99 0 0 0| 0 0 | 16k 359k| 0 0 |1266 1325
1 0 98 0 0 0| 0 0 | 13k 293k| 0 0 |1236 1279
1 0 99 0 0 0| 0 0 | 11k 247k| 0 0 |1170 1283
1 0 98 0 0 0| 0 0 |5676B 127k| 0 0 |1106 1317
1 0 99 0 0 0| 0 0 |9570B 214k| 0 0 |1160 1298
1 0 99 0 0 0| 0 0 |7656B 172k| 0 0 |1133 1339
1 0 98 0 0 0| 0 0 |7194B 161k| 0 0 |1154 1303
1 0 99 0 0 0| 0 0 |6864B 154k| 0 0 |1159 1341
1 0 98 0 0 0| 0 0 | 16k 359k| 0 0 |1366 1405
2 0 98 0 0 0| 0 0 | 11k 263k| 0 0 |1324 1369
2 0 98 0 0 0| 0 0 |8250B 185k| 0 0 |1256 1390
2 0 97 0 0 0| 0 0 | 11k 245k| 0 0 |1382 1369
1 0 98 0 0 0| 0 0 |9570B 214k| 0 0 |1217 1362
2 0 98 0 0 0| 0 0 |7722B 173k| 0 0 |1212 1330
2 0 98 0 0 0| 0 184k|6270B 140k| 0 0 |1238 1322
2 0 98 0 0 0| 0 0 | 12k 276k| 0 0 |1310 1331
1 0 98 0 0 0| 0 0 |6996B 157k| 0 0 |1125 1309
1 0 98 0 0 0| 0 0 |4554B 102k| 0 0 |1128 1299
2 1 97 0 0 0| 0 0 | 14k 310k| 0 0 |1303 1336
2 1 98 0 0 0| 0 0 |5940B 133k| 0 0 |1145 1316
1 0 98 0 0 0| 0 0 | 13k 296k| 0 0 |1263 1346
2 1 97 0 0 0| 0 0 |8778B 197k| 0 0 |1298 1361
2 0 97 0 0 0| 0 0 |4092B 92k| 0 0 |1214 1336
2 0 97 0 0 0| 0 0 |7458B 167k| 0 0 |1259 1349
2 0 98 0 0 0| 0 56k|9438B 211k| 0 0 |1289 1328
2 0 98 0 0 0| 0 0 |7326B 164k| 0 0 |1222 1353
2 1 97 0 0 0| 0 0 | 10k 232k| 0 0 |1597 2734
2 1 97 0 0 0| 0 0 |9372B 210k| 0 0 |1568 2169
2 0 98 0 0 0| 0 0 | 10k 232k| 0 0 |1294 1385
1 0 98 0 0 0| 0 160k| 12k 276k| 0 0 |1234 1323
2 0 98 0 0 0| 0 0 | 15k 350k| 0 0 |1334 1333
2 0 98 0 0 0| 0 0 |6930B 155k| 0 0 |1172 1356
2 0 98 0 0 0| 0 0 | 10k 240k| 0 0 |1231 1288
2 1 97 0 0 0| 0 0 |5082B 114k| 0 0 |1156 1323
2 0 98 0 0 0| 0 0 |8316B 186k| 0 0 |1159 1307
2 0 98 0 0 0| 0 48k|9042B 203k| 0 0 |1213 1339
2 0 98 0 0 0| 0 0 | 10k 234k| 0 0 |1202 1304
2 1 97 0 0 0| 0 0 |5874B 132k| 0 0 |1184 1339
2 0 98 0 0 0| 0 0 |5676B 127k| 0 0 |1136 1324
2 0 98 0 0 0| 0 0 |7788B 174k| 0 0 |1197 1316
....... cutted
== ''datat'' output on server after patched, with rxcso, 64k win ==
----total-cpu-usage---- -dsk/total- --net/eth0- ---paging-- ---system--
usr sys idl wai hiq siq| read writ| recv send| in out | int csw
2 1 97 0 0 0| 0 0 | 158k 3621k| 0 0 |3951 5610
2 1 97 0 0 0| 0 0 | 288k 6596k| 0 0 |7099 14k
3 1 95 0 0 1| 0 0 | 288k 6612k| 0 0 |7653 13k
2 1 97 0 0 0| 0 0 | 290k 6658k| 0 0 |7464 13k
3 1 94 1 0 1| 0 6400k| 287k 6590k| 0 0 |7527 11k
3 1 95 0 0 0| 0 0 | 287k 6590k| 0 0 |7414 13k
3 1 96 0 0 0| 0 0 | 291k 6673k| 0 0 |7250 13k
2 1 97 0 0 1| 0 0 | 287k 6594k| 0 0 |7462 13k
2 1 96 0 0 1| 0 0 | 288k 6599k| 0 0 |7379 14k
2 1 96 0 0 1| 0 0 | 291k 6674k| 0 0 |7692 13k
2 1 95 1 0 0| 0 9944k| 287k 6588k| 0 0 |7759 13k
3 1 96 0 0 0| 0 0 | 288k 6599k| 0 0 |7546 14k
2 1 96 0 0 1| 0 0 | 290k 6646k| 0 0 |7918 14k
2 2 96 0 0 0| 0 0 | 287k 6591k| 0 0 |7799 13k
2 1 96 0 0 1| 0 0 | 289k 6630k| 0 0 |8008 13k
2 1 96 0 0 0| 0 0 | 290k 6641k| 0 0 |7917 12k
2 1 95 1 0 0| 0 9.9M| 288k 6610k| 0 0 |7833 13k
2 1 96 0 0 0| 0 0 | 287k 6591k| 0 0 |7401 13k
2 1 96 0 0 0| 0 0 | 290k 6646k| 0 0 |7643 17k
2 1 97 0 0 0| 0 0 | 287k 6593k| 0 0 |7346 14k
2 1 96 0 0 0| 0 0 | 287k 6594k| 0 0 |7568 13k
2 1 96 0 0 0| 0 0 | 290k 6643k| 0 0 |7557 14k
2 1 94 1 0 0| 0 9944k| 288k 6602k| 0 0 |7620 13k
2 1 96 0 0 1| 0 0 | 288k 6618k| 0 0 |7684 11k
9 2 89 0 0 1| 0 160k| 290k 6646k| 0 0 |8222 15k
11 1 86 0 0 1| 0 0 | 288k 6615k| 0 0 |8015 17k
3 1 96 0 0 1| 0 0 | 288k 6600k| 0 0 |7735 14k
2 1 96 0 0 0| 0 0 | 290k 6643k| 0 0 |7764 13k
2 1 95 1 0 0| 0 9944k| 289k 6624k| 0 0 |7797 14k
2 1 96 0 0 0| 0 0 | 288k 6602k| 0 0 |7818 13k
2 1 96 0 0 1| 0 0 | 289k 6639k| 0 0 |7538 12k
3 1 96 0 0 0| 0 0 | 289k 6622k| 0 0 |7679 12k
2 1 96 0 0 1| 0 0 | 287k 6594k| 0 0 |7717 13k
2 1 96 0 0 0| 0 0 | 290k 6646k| 0 0 |7829 13k
2 2 95 1 0 1| 0 9.9M| 289k 6631k| 0 0 |7817 12k
3 1 96 0 0 0| 0 0 | 286k 6568k| 0 0 |7462 15k
2 1 96 0 0 0| 0 0 | 290k 6647k| 0 0 |7642 13k
2 1 97 0 0 0| 0 0 | 289k 6636k| 0 0 |7438 12k
2 1 96 0 0 0| 0 0 | 288k 6605k| 0 0 |7512 12k
2 1 97 0 0 0| 0 0 | 289k 6628k| 0 0 |7858 12k
2 1 95 2 0 0| 0 9824k| 290k 6641k| 0 0 |8045 13k
2 1 96 0 0 0| 0 0 | 288k 6612k| 0 0 |8012 13k
3 1 96 0 0 1| 0 0 | 288k 6602k| 0 0 |8187 14k
2 1 96 0 0 1| 0 0 | 289k 6633k| 0 0 |8090 14k
3 1 96 0 0 1| 0 112k| 288k 6609k| 0 0 |7856 12k
2 1 96 0 0 0| 0 0 | 288k 6616k| 0 0 |7756 12k
2 1 96 0 0 0| 0 9.9M| 290k 6646k| 0 0 |7723 14k
2 1 96 0 0 0| 0 0 | 288k 6602k| 0 0 |7675 16k
2 1 96 0 0 0| 0 0 | 289k 6637k| 0 0 |8029 16k
2 1 96 0 0 1| 0 48k| 288k 6605k| 0 0 |7982 13k
2 1 96 0 0 0| 0 0 | 288k 6606k| 0 0 |7786 13k
2 1 96 0 0 1| 0 0 | 288k 6610k| 0 0 |7997 13k
3 1 94 1 0 0| 0 9936k| 289k 6627k| 0 0 |8172 14k
2 1 96 0 0 0| 0 0 | 288k 6615k| 0 0 |7745 13k
3 1 96 0 0 1| 0 0 | 288k 6618k| 0 0 |7822 13k
2 1 96 0 0 1| 0 0 | 290k 6647k| 0 0 |7730 11k
2 1 96 0 0 1| 0 0 | 288k 6596k| 0 0 |7984 14k
2 1 96 0 0 0| 0 0 | 290k 6643k| 0 0 |7811 12k
2 1 95 1 0 1| 0 9952k| 287k 6588k| 0 0 |7804 16k
2 1 96 0 0 0| 0 160k| 289k 6619k| 0 0 |7815 14k
2 1 96 0 0 0| 0 0 | 288k 6615k| 0 0 |7986 13k
2 1 96 0 0 1| 0 0 | 289k 6619k| 0 0 |7794 13k
9 2 88 0 0 1| 0 0 | 289k 6637k| 0 0 |8206 16k
2 1 96 0 0 0| 0 0 | 288k 6605k| 0 0 |7630 16k
2 1 95 1 0 1| 0 9.8M| 290k 6647k| 0 0 |7812 13k
3 1 96 0 0 0| 0 0 | 288k 6610k| 0 0 |7695 11k
2 1 96 0 0 0| 0 0 | 288k 6596k| 0 0 |7512 11k
2 1 97 0 0 0| 0 0 | 289k 6637k| 0 0 |7550 14k
3 1 96 0 0 0| 0 0 | 288k 6606k| 0 0 |7742 13k
2 1 96 0 0 0| 0 0 | 288k 6616k| 0 0 |7500 11k
2 1 95 1 0 0| 0 9816k| 289k 6634k| 0 0 |7959 15k
2 1 96 0 0 0| 0 0 | 288k 6610k| 0 0 |7950 15k
2 1 96 0 0 0| 0 0 | 288k 6607k| 0 0 |7957 13k
2 1 96 0 0 0| 0 0 | 288k 6612k| 0 0 |8087 14k
2 1 96 0 0 0| 0 0 | 288k 6596k| 0 0 |8093 14k
2 1 96 0 0 0| 0 0 | 288k 6599k| 0 0 |7924 13k
2 1 95 1 0 0| 0 9960k| 288k 6596k| 0 0 |8067 15k
2 1 96 0 0 1| 0 0 | 289k 6640k| 0 0 |7704 15k
2 1 97 0 0 0| 0 0 | 288k 6613k| 0 0 |7633 13k
2 1 96 0 0 0| 0 0 | 289k 6625k| 0 0 |7225 15k
2 1 96 0 0 0| 0 0 | 289k 6624k| 0 0 |7557 15k
2 1 96 0 0 1| 0 0 | 288k 6602k| 0 0 |7383 11k
2 1 96 1 0 0| 0 9768k| 51k 1163k| 0 0 |2254 2980