Re: [PATCH v2] net-tcp: TCP/IP stack bypass for loopback connections
From: Pádraig Brady <hidden>
Date: 2012-08-23 10:57:11
On 08/10/2012 01:52 AM, Bruce "Brutus" Curtis wrote:
From: "Bruce \"Brutus\" Curtis" <redacted> TCP/IP loopback socket pair stack bypass, based on an idea by, and rough upstream patch from, David Miller [off-list ref] called "friends", the data structure modifcations and connection scheme are reused with extensive data-path changes. A new sysctl, net.ipv4.tcp_friends, is added: 0: disable friends and use the stock data path. 1: enable friends and bypass the stack data path, the default. Note, when friends is enabled any loopback interpose, e.g. tcpdump, will only see the TCP/IP packets during connection establishment and finish, all data bypasses the stack and instead is delivered to the destination socket directly. Testing done on a 4 socket 2.2GHz "Quad-Core AMD Opteron(tm) Processor 8354 CPU" based system, netperf results for a single connection show increased TCP_STREAM throughput, increased TCP_RR and TCP_CRR transaction rate for most message sizes vs baseline and comparable to AF_UNIX. Significant increase (up to 4.88x) in aggregate throughput for multiple netperf runs (STREAM 32KB I/O x N) is seen.
Nice! Just to quantify the loopback testing compat issue. I often do stuff like the following to test latency. Will that be impacted? tc qdisc add dev lo root handle 1:0 netem delay 20msec As for the stated tcpdump change, I don't suppose it would be possible to dynamically disable this (for new connections at least) while lo is being dumped? cheers, Pádraig.