Rewritten TCP reassembly

Andrew Gallatin gallatin at cs.duke.edu
Mon Dec 13 13:04:51 PST 2004


Andre Oppermann writes:
 > 
 > I've got some excellent review feedback from Mike Spengler and he found
 > a off-by-one queue limit tracking error.
 > 
 >   http://www.nrg4u.com/freebsd/tcp_reass-20041213.patch
 > 


Here are the same tests running your new patch in comparison to a
stock 6.x kernel from Friday.  It looks like everything is faster.
I've never seen 3.7Gb/sec on FreeBSD before.  Nice work!

The "before" and "tcp_reass-20041213" kernels differ only in the
contents of the above patch.  I ran netperf with 20 times for each of
4 socket buffer sizes (64KB, 128KB, 256KB, and 1MB) before and after
patching.  All tests were run with net.isr.enable=1, and
machdep.cpu_idle_hlt=0.  CPU was pretty much maxed thoughout. (SMP
kernel, 1 HTT p4).  All the numbers in Mb/sec.  The sender was running
linux-2.6.6 (also SMP on an identical HTT P4).

The out-of-order accounting bug seems to be gone.


Drew


x before.65536
+ tcp_reass-20041213.65536
+--------------------------------------------------------------------------+
|                                  +                                       |
|                                  +                                       |
|  xx           +  +        +  +   +*x  +   ++   ++ +   ++          +   +++|
||__________________A________|______M__|_____MA________________|           |
+--------------------------------------------------------------------------+
    N           Min           Max        Median           Avg        Stddev
x   4       3121.03       3135.88       3135.27     3128.3325     8.3667691
+  20       3126.75       3151.97       3139.41      3139.608     7.5192088
Difference at 95.0% confidence
	11.2755 +/- 8.67923
	0.360432% +/- 0.277439%
	(Student's t, pooled s = 7.64032)
x before.131072
+ tcp_reass-20041213.131072
+--------------------------------------------------------------------------+
|          x             x   ++    xx           +               +  +       |
|x         x  xxx   xx*x x  x+* + xxx++  +   +  +  ++ +         +  +      +|
|           |_________AM_______||_____________A_M_____________|            |
+--------------------------------------------------------------------------+
    N           Min           Max        Median           Avg        Stddev
x  20       3336.63       3516.95       3449.87      3447.838     52.708815
+  20       3443.67       3717.15       3579.92     3571.8355     80.445555
Difference at 95.0% confidence
	123.997 +/- 43.5271
	3.59638% +/- 1.26245%
	(Student's t, pooled s = 68.0063)
x before.262144
+ tcp_reass-20041213.262144
+--------------------------------------------------------------------------+
|                                    x       +                             |
|                                    x    x ++  x    +   ++                |
|+            x    x  x x       xx+ *x x  * ++ +xx xx+  x++ + *  +        +|
|                         |_______|____A_________A__|M__________|          |
+--------------------------------------------------------------------------+
    N           Min           Max        Median           Avg        Stddev
x  20       3197.77       3421.67       3316.64     3314.8555     59.787371
+  20       3135.57       3479.29       3380.31     3361.5785     71.303501
Difference at 95.0% confidence
	46.723 +/- 42.1136
	1.4095% +/- 1.27045%
	(Student's t, pooled s = 65.7979)
x before.1048576
+ tcp_reass-20041213.1048576
+--------------------------------------------------------------------------+
|                                   +               +                      |
|              x         +          +x     x+      x+                      |
|xx     x      x    *x   * x x    * +x  +* x+x+x++ x+   ++                +|
|             |_______________A|__M________AM|__________|                  |
+--------------------------------------------------------------------------+
    N           Min           Max        Median           Avg        Stddev
x  20       2658.05       2732.45       2706.91     2700.1955     23.318833
+  20       2686.35       2765.88       2722.09     2720.7805     18.752084
Difference at 95.0% confidence
	20.585 +/- 13.5427
	0.762352% +/- 0.501546%
	(Student's t, pooled s = 21.159)


More information about the freebsd-net mailing list