From: Calvin Owens <calvinowens@fb.com>
To: David Miller <davem@davemloft.net>
Cc: <kuznet@ms2.inr.ac.ru>, <jmorris@namei.org>,
<yoshfuji@linux-ipv6.org>, <kaber@trash.net>,
<netdev@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
<kernel-team@fb.com>, <sorin@returnze.ro>
Subject: Re: [PATCH] net: Unbreak resetting default values for tcp_wmem/udp_wmem_min
Date: Mon, 10 Aug 2015 20:34:06 -0700 [thread overview]
Message-ID: <20150811033406.GA1136819@mail.thefacebook.com> (raw)
In-Reply-To: <20150809.224114.818332231954008575.davem@davemloft.net>
On Sunday 08/09 at 22:41 -0700, David Miller wrote:
> From: Calvin Owens <calvinowens@fb.com>
> Date: Wed, 5 Aug 2015 13:26:54 -0700
>
> > Commit 8133534c760d4083 ("net: limit tcp/udp rmem/wmem to
> > SOCK_{RCV,SND}BUF_MIN") modified four sysctls to enforce that the values
> > written to them are not less than SOCK_MIN_{RCV,SND}BUF.
> >
> > This change is fine for tcp_rmem and udp_rmem_min, since SOCK_MIN_RCVBUF
> > is equal to equal to TCP_SKB_MIN_TRUESIZE. But it breaks tcp_wmem and
> > udp_wmem_min for previously valid values because SOCK_MIN_SNDBUF is
> > (2 * TCP_SKB_MIN_TRUESIZE), which ends up being greater than 4KB.
> >
> > Thus, 4096 is no longer accepted as a valid value, despite still being
> > the default for udp_wmem_min, and for 'min' in tcp_wmem. A huge number
> > of sysctl configurations at FB use 4096 as 'min', so this change breaks
> > all of them.
> >
> > This patch changes the sysctls to simply enforce that the value written
> > is greater than or equal to the default value of SK_MEM_QUANTUM.
> >
> > Fixes: 8133534c760d4083 ("net: limit tcp/udp rmem/wmem to SOCK_MIN...")
> > Signed-off-by: Calvin Owens <calvinowens@fb.com>
>
> I think increasing the default makes more sense.
>
> If we don't allow applications to set 4K, the kernel shouldn't start
> with that value either.
I'm really questioning the limitation itself: why enforce a minimum of
SOCK_MIN_SNDBUF here? Why not SK_MEM_QUANTUM?
Commit 8133534c760d4083 referred to b1cb59cf2efe7971, which choose to
use the SOCK_MIN constants as the lower limits to avoid nasty bugs. But
AFAICS, a limit of SOCK_MIN_SNDBUF isn't necessary to do that: the
BUG_ON cited in the commit message for b1cb59cf2efe7971 seems to have
happened because unix_stream_sendmsg() expects a minimum of a full page
(ie SK_MEM_QUANTUM) and the math broke, not because it had less than
SOCK_MIN_SNDBUF allocated.
Nothing seems to assume that it has at least SOCK_MIN_SNDBUF to play
with, so my argument is that enforcing a minimum of SK_MEM_QUANTUM
avoids the sort of bugs commit 8133534c760d4083 was trying to avoid, and
it does so without breaking anybody's sysctl configurations. What do you
think?
Thanks very much,
Calvin
next prev parent reply other threads:[~2015-08-11 3:34 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-05 20:26 [PATCH] net: Unbreak resetting default values for tcp_wmem/udp_wmem_min Calvin Owens
2015-08-10 5:41 ` David Miller
2015-08-11 3:34 ` Calvin Owens [this message]
2015-08-11 3:46 ` David Miller
2015-08-12 4:54 ` [PATCH] net: Use SK_MEM_QUANTUM as minimum for tcp/udp rmem/wmem Calvin Owens
2015-08-12 14:21 ` Eric Dumazet
2015-08-12 17:00 ` Sorin Dumitru
2015-08-12 17:46 ` Eric Dumazet
2015-08-13 21:07 ` Calvin Owens
2015-08-13 21:21 ` [PATCH] Revert "net: limit tcp/udp rmem/wmem to SOCK_{RCV,SND}BUF_MIN" Calvin Owens
2015-08-13 22:56 ` Eric Dumazet
2015-08-17 19:11 ` David Miller
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=20150811033406.GA1136819@mail.thefacebook.com \
--to=calvinowens@fb.com \
--cc=davem@davemloft.net \
--cc=jmorris@namei.org \
--cc=kaber@trash.net \
--cc=kernel-team@fb.com \
--cc=kuznet@ms2.inr.ac.ru \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=sorin@returnze.ro \
--cc=yoshfuji@linux-ipv6.org \
/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