Re: [PATCH net] tcp: note that tcp_rmem[1] has a limited range

From: Eric Dumazet
Date: Tue Jan 04 2022 - 03:33:19 EST


On Mon, Jan 3, 2022 at 4:44 PM Stephen Hemminger
<stephen@xxxxxxxxxxxxxxxxxx> wrote:
>
> On Mon, 3 Jan 2022 16:37:22 -0800
> Ivan Babrou <ivan@xxxxxxxxxxxxxx> wrote:
>
> > The value of rcv_ssthresh is limited to tcp_rwin, which is limited
> > to 64k at the handshake time, since window scaling is not allowed there.
> >
> > Let's add a note to the docs that increasing tcp_rmem[1] does not have
> > any effect on raising the initial value of rcv_ssthresh past 64k.

I guess you have to define what is the initial window.

There seems to be a confusion between rcv_ssthresh and sk_rcvbuf

If you want to document what is rcv_ssthresh and how it relates to sk_rcvbuf,
you probably need more than few lines in Documentation/networking/ip-sysctl.rst

> >
> > Link: https://lkml.org/lkml/2021/12/22/652
> > Signed-off-by: Ivan Babrou <ivan@xxxxxxxxxxxxxx>
> > ---
> > Documentation/networking/ip-sysctl.rst | 3 ++-
> > 1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/Documentation/networking/ip-sysctl.rst b/Documentation/networking/ip-sysctl.rst
> > index 2572eecc3e86..16528bc92e65 100644
> > --- a/Documentation/networking/ip-sysctl.rst
> > +++ b/Documentation/networking/ip-sysctl.rst
> > @@ -683,7 +683,8 @@ tcp_rmem - vector of 3 INTEGERs: min, default, max
> > default: initial size of receive buffer used by TCP sockets.
> > This value overrides net.core.rmem_default used by other protocols.
> > Default: 131072 bytes.
> > - This value results in initial window of 65535.
> > + This value results in initial window of 65535. Increasing this value
> > + won't raise the initial advertised window above 65535.
> >
> > max: maximal size of receive buffer allowed for automatically
> > selected receiver buffers for TCP socket. This value does not override
>
> Why not add error check or warning in write to sysctl?

Please do not. We set this sysctl to 0.5 MB
DRS is known to have quantization artifacts.