From: David Miller <davem@davemloft.net>
To: eric.dumazet@gmail.com
Cc: netdev@vger.kernel.org, therbert@google.com, wsommerfeld@google.com
Subject: Re: [PATCH net-next] ipv4: tcp: remove per net tcp_sock
Date: Thu, 19 Jul 2012 08:35:44 -0700 (PDT) [thread overview]
Message-ID: <20120719.083544.1223522161508413373.davem@davemloft.net> (raw)
In-Reply-To: <1342688332.2626.4001.camel@edumazet-glaptop>
From: Eric Dumazet <eric.dumazet@gmail.com>
Date: Thu, 19 Jul 2012 10:58:52 +0200
> From: Eric Dumazet <edumazet@google.com>
>
> tcp_v4_send_reset() and tcp_v4_send_ack() use a single socket
> per network namespace.
>
> This leads to bad behavior on multiqueue NICS, because many cpus
> contend for the socket lock and once socket lock is acquired, extra
> false sharing on various socket fields slow down the operations.
>
> To better resist to attacks, we use a percpu socket. Each cpu can
> run without contention, using appropriate memory (local node)
>
> Additional features :
>
> 1) We also mirror the queue_mapping of the incoming skb, so that
> answers use the same queue if possible.
>
> 2) Setting SOCK_USE_WRITE_QUEUE socket flag speedup sock_wfree()
>
> 3) We now limit the number of in-flight RST/ACK [1] packets
> per cpu, instead of per namespace, and we honor the sysctl_wmem_default
> limit dynamically. (Prior to this patch, sysctl_wmem_default value was
> copied at boot time, so any further change would not affect tcp_sock
> limit)
>
>
> [1] These packets are only generated when no socket was matched for
> the incoming packet.
>
> Reported-by: Bill Sommerfeld <wsommerfeld@google.com>
> Signed-off-by: Eric Dumazet <edumazet@google.com>
Looks great, applied, thanks Eric.
> @@ -2624,13 +2624,11 @@ EXPORT_SYMBOL(tcp_prot);
>
> static int __net_init tcp_sk_init(struct net *net)
> {
> - return inet_ctl_sock_create(&net->ipv4.tcp_sock,
> - PF_INET, SOCK_RAW, IPPROTO_TCP, net);
> + return 0;
> }
>
> static void __net_exit tcp_sk_exit(struct net *net)
> {
> - inet_ctl_sock_destroy(net->ipv4.tcp_sock);
> }
>
> static void __net_exit tcp_sk_exit_batch(struct list_head *net_exit_list)
If these no longer really do anything, just send me a patch to kill
them off entirely.
Thanks again.
next prev parent reply other threads:[~2012-07-19 15:35 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-19 8:58 [PATCH net-next] ipv4: tcp: remove per net tcp_sock Eric Dumazet
2012-07-19 15:35 ` David Miller [this message]
2012-07-19 15:45 ` David Miller
2012-07-19 17:07 ` Eric Dumazet
2012-07-19 17:11 ` David Miller
2012-07-19 17:12 ` David Miller
2012-07-19 17:22 ` Eric Dumazet
2012-07-19 17:08 ` Eric Dumazet
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20120719.083544.1223522161508413373.davem@davemloft.net \
--to=davem@davemloft.net \
--cc=eric.dumazet@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=therbert@google.com \
--cc=wsommerfeld@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox