OpenBSD Journal

TCP Socket Speedup

Contributed by jose on from the porting-patches dept.

Jedi/Sector One has ported Jason Thorpe's TCP socket patches from NetBSD to OpenBSD-current. As stated on the patch website , "The patch was successfully tested with OpenBSD-current, but it may apply to OpenBSD 3.1 as well." .

The patch effectively makes the performance of TCP buffering go from O(N) to O(C), or to constant time, independent of the size of the list to traverse. The NetBSD performance enhancements are astounding, hopefully they will be observed on OpenBSD with this patch, as well. Someone needs to benchmark this.

If you're feeling up to the game, feel free to port Thorpe's zero copy TCP patches to OpenBSD.

(Comments are closed)


Comments
  1. By Anonymous Coward () on

    has this been submited to -current?

  2. By schubert () on

    At least it did for me. Haven't benchmarked it yet but the kernel didn't blow up or do anything scary so far.

  3. By Anonymous Coward () on

    I have two OpenBSD web servers dedicated to serve static content. The web servers are running thttpd, and the web site has very small html pages, and files for download from 1Mb to 30Mb. The small files are NFS mounted from a Netapp, the files for download are on local disks.
    These servers are quite busy, each server permanently fills up a 100 Mb link.

    I installed the patch on these servers, running OpenBSD 3.1 (not current). The load dropped from an average of 1.7 to an average of 1.3 . Not that amazing, but not bad. Both servers are running the patch for two days, and no crash so far. Good. I will try it on a local firewall (not overloaded, but just to test) .

Credits

Copyright © - Daniel Hartmeier. All rights reserved. Articles and comments are copyright their respective authors, submission implies license to publish on this web site. Contents of the archive prior to as well as images and HTML templates were copied from the fabulous original deadly.org with Jose's and Jim's kind permission. This journal runs as CGI with httpd(8) on OpenBSD, the source code is BSD licensed. undeadly \Un*dead"ly\, a. Not subject to death; immortal. [Obs.]