diff mbox

[net-next] tcp: enable sockets to use MSG_FASTOPEN by default

Message ID 1383236372-1317-1-git-send-email-ycheng@google.com
State Accepted, archived
Delegated to: David Miller
Headers show

Commit Message

Yuchung Cheng Oct. 31, 2013, 4:19 p.m. UTC
Applications have started to use Fast Open (e.g., Chrome browser has
such an optional flag) and the feature has gone through several
generations of kernels since 3.7 with many real network tests. It's
time to enable this flag by default for applications to test more
conveniently and extensively.

Signed-off-by: Yuchung Cheng <ycheng@google.com>
Signed-off-by: Neal Cardwell <ncardwell@google.com>
---
 Documentation/networking/ip-sysctl.txt | 4 ++--
 net/ipv4/tcp_fastopen.c                | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

Comments

Eric Dumazet Oct. 31, 2013, 11:19 p.m. UTC | #1
On Thu, 2013-10-31 at 09:19 -0700, Yuchung Cheng wrote:
> Applications have started to use Fast Open (e.g., Chrome browser has
> such an optional flag) and the feature has gone through several
> generations of kernels since 3.7 with many real network tests. It's
> time to enable this flag by default for applications to test more
> conveniently and extensively.
> 
> Signed-off-by: Yuchung Cheng <ycheng@google.com>
> Signed-off-by: Neal Cardwell <ncardwell@google.com>
> ---

Acked-by: Eric Dumazet <edumazet@google.com>


--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Rick Jones Nov. 1, 2013, 3:29 p.m. UTC | #2
On 10/31/2013 04:19 PM, Eric Dumazet wrote:
> On Thu, 2013-10-31 at 09:19 -0700, Yuchung Cheng wrote:
>> Applications have started to use Fast Open (e.g., Chrome browser has
>> such an optional flag) and the feature has gone through several
>> generations of kernels since 3.7 with many real network tests. It's
>> time to enable this flag by default for applications to test more
>> conveniently and extensively.
>>
>> Signed-off-by: Yuchung Cheng <ycheng@google.com>
>> Signed-off-by: Neal Cardwell <ncardwell@google.com>
>> ---
>
> Acked-by: Eric Dumazet <edumazet@google.com>

Which TCP/IP stacks besides Linux have Fast Open at this point and for 
how long have they had it?  Basically, how prevalent are servers out 
there (both Internet and intranet) with support for Fast Open?

http://news.netcraft.com/archives/2013/11/01/november-2013-web-server-survey.html 
  doesn't go down to the OS level, and 
http://www.netcraft.com/internet-data-mining/ssl-survey/ is only from 
May and was in the context of SSL sides, but it does provide an 
interesting break-down of "OS share" which looks reasonably stable going 
back three years and so probably isn't too far off presently.

<insert the same sort of question about those firewalls and intermediate 
devices which make our lives so much fun here>

rick jones

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Yuchung Cheng Nov. 1, 2013, 4:09 p.m. UTC | #3
On Fri, Nov 1, 2013 at 8:29 AM, Rick Jones <rick.jones2@hp.com> wrote:
> On 10/31/2013 04:19 PM, Eric Dumazet wrote:
>>
>> On Thu, 2013-10-31 at 09:19 -0700, Yuchung Cheng wrote:
>>>
>>> Applications have started to use Fast Open (e.g., Chrome browser has
>>> such an optional flag) and the feature has gone through several
>>> generations of kernels since 3.7 with many real network tests. It's
>>> time to enable this flag by default for applications to test more
>>> conveniently and extensively.
>>>
>>> Signed-off-by: Yuchung Cheng <ycheng@google.com>
>>> Signed-off-by: Neal Cardwell <ncardwell@google.com>
>>> ---
>>
>>
>> Acked-by: Eric Dumazet <edumazet@google.com>
>
>
> Which TCP/IP stacks besides Linux have Fast Open at this point and for how
> long have they had it?  Basically, how prevalent are servers out there (both
> Internet and intranet) with support for Fast Open?
google.com supports it. we are working on enabling more Android and
ChromeOS to use it.

>
> http://news.netcraft.com/archives/2013/11/01/november-2013-web-server-survey.html
> doesn't go down to the OS level, and
> http://www.netcraft.com/internet-data-mining/ssl-survey/ is only from May
> and was in the context of SSL sides, but it does provide an interesting
> break-down of "OS share" which looks reasonably stable going back three
> years and so probably isn't too far off presently.
>
> <insert the same sort of question about those firewalls and intermediate
> devices which make our lives so much fun here>
>
> rick jones
>
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
David Miller Nov. 5, 2013, 12:58 a.m. UTC | #4
From: Yuchung Cheng <ycheng@google.com>
Date: Thu, 31 Oct 2013 09:19:32 -0700

> Applications have started to use Fast Open (e.g., Chrome browser has
> such an optional flag) and the feature has gone through several
> generations of kernels since 3.7 with many real network tests. It's
> time to enable this flag by default for applications to test more
> conveniently and extensively.
> 
> Signed-off-by: Yuchung Cheng <ycheng@google.com>
> Signed-off-by: Neal Cardwell <ncardwell@google.com>

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

Patch

diff --git a/Documentation/networking/ip-sysctl.txt b/Documentation/networking/ip-sysctl.txt
index a46d785..6c00983 100644
--- a/Documentation/networking/ip-sysctl.txt
+++ b/Documentation/networking/ip-sysctl.txt
@@ -451,7 +451,7 @@  tcp_fastopen - INTEGER
 	connect() to perform a TCP handshake automatically.
 
 	The values (bitmap) are
-	1: Enables sending data in the opening SYN on the client.
+	1: Enables sending data in the opening SYN on the client w/ MSG_FASTOPEN.
 	2: Enables TCP Fast Open on the server side, i.e., allowing data in
 	   a SYN packet to be accepted and passed to the application before
 	   3-way hand shake finishes.
@@ -464,7 +464,7 @@  tcp_fastopen - INTEGER
 	   different ways of setting max_qlen without the TCP_FASTOPEN socket
 	   option.
 
-	Default: 0
+	Default: 1
 
 	Note that the client & server side Fast Open flags (1 and 2
 	respectively) must be also enabled before the rest of flags can take
diff --git a/net/ipv4/tcp_fastopen.c b/net/ipv4/tcp_fastopen.c
index 766032b..f195d93 100644
--- a/net/ipv4/tcp_fastopen.c
+++ b/net/ipv4/tcp_fastopen.c
@@ -8,7 +8,7 @@ 
 #include <net/inetpeer.h>
 #include <net/tcp.h>
 
-int sysctl_tcp_fastopen __read_mostly;
+int sysctl_tcp_fastopen __read_mostly = TFO_CLIENT_ENABLE;
 
 struct tcp_fastopen_context __rcu *tcp_fastopen_ctx;