Re: [PATCH net-next] tcp: auto corking

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 12/06/2013 09:46 AM, Eric Dumazet wrote:
On Fri, 2013-12-06 at 08:06 -0800, Rick Jones wrote:
On 12/06/2013 02:30 AM, David Laight wrote:
From: Eric Dumazet <edumazet@xxxxxxxxxx>

With the introduction of TCP Small Queues, TSO auto sizing, and TCP
pacing, we can implement Automatic Corking in the kernel, to help
applications doing small write()/sendmsg() to TCP sockets.

Presumably this has the greatest effect on connections with Nagle
disabled?

I was wondering why Nagle didn't catch these things as well.  The
netperf command line Eric provided though didn't include the
test-specific -D option that would have disabled Nagle.  At least not
unless the "super_netperf" wrapper was adding it.

So, why doesn't Nagle catch what is presumably a sub-MSS send while
there is data outstanding on the connection?

super_netperf do not add any option.

Note the netperf results do no really show the improvements of this
patch. It's a side effect of the short cut.

You kind of need a TCP_RR workload, but splitting the request into small
chunks.

You mean write, write, read?

If all you need is multiple, small sends in flight at one time, you can light-up the burst mode option of netperf and ask it to put multiple "transactions" into flight at one time. But that won't be the same as "write, write, read" (when an application presents logically associated data to the transport at the same time). There will still be a 1-1 correspondence between writes and reads with netperf's burst mode.

Well written applications use TCP_CORK or MSG_MORE, but unfortunately
many applications are not well written.

I still like the likes of writev() and other gathering sends better :)

rick jones
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel Discussion]     [TCP Instrumentation]     [Ethernet Bridging]     [Linux Wireless Networking]     [Linux WPAN Networking]     [Linux Host AP]     [Linux WPAN Networking]     [Linux Bluetooth Networking]     [Linux ATH6KL Networking]     [Linux Networking Users]     [Linux Coverity]     [VLAN]     [Git]     [IETF Annouce]     [Linux Assembly]     [Security]     [Bugtraq]     [Yosemite Information]     [MIPS Linux]     [ARM Linux Kernel]     [ARM Linux]     [Linux Virtualization]     [Linux IDE]     [Linux RAID]     [Linux SCSI]