Thread (12 messages) flat view 12 messages, 2 authors, 2021-01-12

Re: [PATCH net-next 4/4] tcp: remove limit on initial receive window

From: Heath Caldwell <hidden>
Date: 2021-01-12 21:42:39

On 2021-01-12 21:26 (+0100), Eric Dumazet [off-list ref] wrote:
On Tue, Jan 12, 2021 at 8:25 PM Heath Caldwell [off-list ref] wrote:
quoted
On 2021-01-12 18:05 (+0100), Eric Dumazet [off-list ref] wrote:
quoted
On Tue, Jan 12, 2021 at 5:02 PM Heath Caldwell [off-list ref] wrote:
quoted
On 2021-01-12 09:30 (+0100), Eric Dumazet [off-list ref] wrote:
quoted
I think the whole patch series is an attempt to badly break TCP stack.
Can you explain the concern that you have about how these changes might
break the TCP stack?

Patches 1 and 3 fix clear bugs.
Not clear to me at least.

If they were bug fixes, a FIxes: tag would be provided.
The underlying bugs that are addressed in patches 1 and 3 are present in
1da177e4c3f4 ("Linux-2.6.12-rc2") which looks to be the earliest parent
commit in the repository.  What should I do for a Fixes: tag in this
case?
quoted
You are a first time contributor to linux TCP stack, so better make
sure your claims are solid.
I fear that I may not have expressed the problems and solutions in a
manner that imparted the ideas well.

Maybe I added too much detail in the description for patch 1, which may
have obscured the problem: val is capped to sysctl_rmem_max *before* it
is doubled (resulting in the possibility for sk_rcvbuf to be set to
2*sysctl_rmem_max, rather than it being capped at sysctl_rmem_max).
This is fine. This has been done forever. Your change might break applications.
In what way might applications be broken?

It seems to be a very strange position to allow a configured maximum to
be violated because of obscure precedent.

It does not seem to be a supportable position to allow an application to
violate an installation's configuration because of a chance that the
application may behave differently if a setsockopt() call fails.  What
if a system administrator decides to reduce sysctl_rmem_max to half of
the current default?
I would advise documenting this fact, since existing behavior will be kept
in many linux hosts for years to come.
quoted
Maybe I was not explicit enough in the description for patch 3: space is
expanded into sock_net(sk)->ipv4.sysctl_tcp_rmem[2] and sysctl_rmem_max
without first shrinking them to discount the overhead.
quoted
quoted
Patches 2 and 4 might be arguable, though.
So we have to pick up whatever pleases us ?
I have been treating all of these changes together because they all kind
of work together to provide a consistent model and configurability for
the initial receive window.

Patches 1 and 3 address bugs.
Maybe, but will break applications.
How might patch 3 break an application?  It merely will reduce the
window scale value to something lower but still capable of representing
the largest window that a particular connection might advertise.
quoted
Patch 2 addresses an inconsistency in how overhead is treated specially
for TCP sockets.
Patch 4 addresses the 64KB limit which has been imposed.
For very good reasons.
What are the reasons?
This is going nowhere. I will stop right now.
That is a shame :(.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help