On 14 sept. 2010, at 17:41, Andre Oppermann wrote:

> On 14.09.2010 11:18, Fabien Thomas wrote:
>> Great,
>> 
>> This will maybe kill the long time debate about "my loopback is slow vs 
>> linux"
>> To have the best of both world what about a socket option to enable/disable 
>> fusing:
>> can be useful when you need to see some connection "packetized".
> 
> A sysctl to that effect is already in the patch.
yes, i'm just wondering on a per connection setting.

> 
> -- 
> Andre
> 
>> Fabien
>> 
>> On 13 sept. 2010, at 13:33, Andre Oppermann wrote:
>> 
>>> When a TCP connection via loopback back to localhost is made the whole
>>> send, segmentation and receive path (with larger packets though) is still
>>> executed.  This has some considerable overhead.
>>> 
>>> To short-circuit the send and receive sockets on localhost TCP connections
>>> I've made a proof-of-concept patch that directly places the data in the
>>> other side's socket buffer without doing any packetization and other 
>>> protocol
>>> overhead (like UNIX domain sockets).  The connections setup (SYN, SYN-ACK,
>>> ACK) and shutdown are still handled by normal TCP segments via loopback so
>>> that firewalling stills works.  The actual payload data during the session
>>> won't be seen and the sequence numbers don't move other than for SYN and 
>>> FIN.
>>> The sequence are remain valid though.  Obviously tcpdump won't see any data
>>> transfers either if the connection has fused sockets.
>>> 
>>> Preliminary testing (with WITNESS and INVARIANTS enabled) has shown stable
>>> operation and a rough doubling of the throughput on loopback connections.
>>> I've tested most socket teardown cases and it behaves fine.  I'm not 
>>> entirely
>>> sure I've got all possible path's but the way it is integrated should 
>>> properly
>>> defuse the sockets in all situations.
>>> 
>>> Testers and feedback wanted:
>>> 
>>> http://people.freebsd.org/~andre/tcp_loopfuse-20100913.diff
>>> 
>>> --
>>> Andre
>>> 
>>> _______________________________________________
>>> freebsd-net@freebsd.org mailing list
>>> http://lists.freebsd.org/mailman/listinfo/freebsd-net
>>> To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"
>> 
>> 
>> 
> 

_______________________________________________
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"

Reply via email to