[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAL+tcoAuQFHf_NPNF6ogK8dTZu0V0kts=KyNqfWHJxHWShc3Hw@mail.gmail.com>
Date: Tue, 16 Jul 2024 15:14:30 +0800
From: Jason Xing <kerneljasonxing@...il.com>
To: Eric Dumazet <edumazet@...gle.com>
Cc: kuba@...nel.org, pabeni@...hat.com, davem@...emloft.net,
dsahern@...nel.org, ncardwell@...gle.com, corbet@....net,
netdev@...r.kernel.org, Jason Xing <kernelxing@...cent.com>
Subject: Re: [PATCH net-next] tcp: introduce rto_max_us sysctl knob
On Tue, Jul 16, 2024 at 2:57 PM Eric Dumazet <edumazet@...gle.com> wrote:
>
> On Mon, Jul 15, 2024 at 11:42 PM Jason Xing <kerneljasonxing@...il.com> wrote:
> >
> > Hello Eric,
> >
> > On Mon, Jul 15, 2024 at 10:40 PM Eric Dumazet <edumazet@...gle.com> wrote:
> > >
> > > On Sun, Jul 14, 2024 at 8:31 PM Jason Xing <kerneljasonxing@...il.com> wrote:
> > > >
> > > > From: Jason Xing <kernelxing@...cent.com>
> > > >
> > > > As we all know, the algorithm of rto is exponential backoff as RFC
> > > > defined long time ago.
> > >
> > > This is weak sentence. Please provide RFC numbers instead.
> >
> > RFC 6298. I will update it.
> >
> > >
> > > > After several rounds of repeatedly transmitting
> > > > a lost skb, the expiry of rto timer could reach above 1 second within
> > > > the upper bound (120s).
> > >
> > > This is confusing. What do you mean exactly ?
> >
> > I will rewrite this part. What I was trying to say is that waiting
> > more than 1 second is not very friendly to some applications,
> > especially the expiry time can reach 120 seconds which is too long.
>
> Says who ? I think this needs IETF approval.
Did you get me wrong? I mean this rto_max is the same as rto_min_us,
which can be tuned by users.
>
> >
> > >
> > > >
> > > > Waiting more than one second to retransmit for some latency-sensitive
> > > > application is a little bit unacceptable nowadays, so I decided to
> > > > introduce a sysctl knob to allow users to tune it. Still, the maximum
> > > > value is 120 seconds.
> > >
> > > I do not think this sysctl needs usec resolution.
> >
> > Are you suggesting using jiffies is enough? But I have two reasons:
> > 1) Keep the consistency with rto_min_us
> > 2) If rto_min_us can be set to a very small value, why not rto_max?
>
> rto_max is usually 3 order of magnitude higher than rto_min
>
> For HZ=100, using jiffies for rto_min would not allow rto_min < 10 ms.
> Some of us use 5 msec rto_min.
>
> jiffies is plain enough for rto_max.
I got it. Thanks.
>
>
> >
> > What do you think?
>
> I think you missed many many details really.
>
> Look at all TCP_RTO_MAX instances in net/ipv4/tcp_timer.c and ask
> yourself how many things
> will break if we allow a sysctl value with 1 second for rto_max.
I'm not modifying the TCP_RTO_MAX value which is tooooo complicated.
Instead, I'm trying to control the maximum expiry time in the
ICSK_TIME_RETRANS timer. So it's only involved in three cases:
1) syn retrans
2) synack retrans
3) data retrans
Thanks,
Jason
Powered by blists - more mailing lists