net/haproxy - some ideas

Vladimir Grebenschikov vova at parallels.com
Mon Aug 3 14:04:39 UTC 2009


Hi 

Recently I've looked into net/haproxy port on FreeBSD.

Contrary to recent Linux there is no splice() functionality, so all data
move between sockets is done through user-space.

First idea - to use ksocket netgraph node to accept connections, and
send data to both directions, theoretically it may give even better
performance then using splice() syscall per every block of data.

On first stage (while haproxy read/rewrite http headers) both ksocket
nodes to be ended in user-space, initial negotiation finished - these
nodes just connected to each other in kernel and no user-space
interaction required for further data send through that pair.

Second, probably you have tried ongoing splice work 
Suleiman Souhlal ? (not sure about current status)
http://p4db.freebsd.org/branchView.cgi?BRANCH=ssouhlal_splice


-- 
Vladimir B. Grebenschikov
Project Manager, Automation
Parallels Inc. vgrebenschikov at parallels.com



More information about the freebsd-net mailing list