Messages in this thread | | | From | Haiyang Zhang <> | Subject | RE: [PATCH net-next,v2] tcp: Set pingpong threshold via sysctl | Date | Tue, 10 Oct 2023 22:59:49 +0000 |
| |
> -----Original Message----- > From: Yuchung Cheng <ycheng@google.com> > Sent: Tuesday, October 10, 2023 6:27 PM > To: Stephen Hemminger <stephen@networkplumber.org> > Cc: Haiyang Zhang <haiyangz@microsoft.com>; linux-hyperv@vger.kernel.org; > netdev@vger.kernel.org; KY Srinivasan <kys@microsoft.com>; > davem@davemloft.net; edumazet@google.com; kuba@kernel.org; > pabeni@redhat.com; corbet@lwn.net; dsahern@kernel.org; > ncardwell@google.com; kuniyu@amazon.com; morleyd@google.com; > mfreemon@cloudflare.com; mubashirq@google.com; linux- > doc@vger.kernel.org; weiwan@google.com; linux-kernel@vger.kernel.org > Subject: Re: [PATCH net-next,v2] tcp: Set pingpong threshold via sysctl > > On Tue, Oct 10, 2023 at 3:14 PM Stephen Hemminger > <stephen@networkplumber.org> wrote: > > > > On Tue, 10 Oct 2023 12:23:30 -0700 > > Haiyang Zhang <haiyangz@microsoft.com> wrote: > > > > > TCP pingpong threshold is 1 by default. But some applications, like SQL DB > > > may prefer a higher pingpong threshold to activate delayed acks in quick > > > ack mode for better performance. > > > > > > The pingpong threshold and related code were changed to 3 in the year > > > 2019 in: > > > commit 4a41f453bedf ("tcp: change pingpong threshold to 3") > > > And reverted to 1 in the year 2022 in: > > > commit 4d8f24eeedc5 ("Revert "tcp: change pingpong threshold to 3"") > > > > > > There is no single value that fits all applications. > > > Add net.ipv4.tcp_pingpong_thresh sysctl tunable, so it can be tuned for > > > optimal performance based on the application needs. > > > > > > Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> > > > > If this an application specific optimization, it should be in a socket option > > rather than system wide via sysctl. > Initially I had a similar comment but later decided a sysctl could > still be useful if > 1) the entire host (e.g. virtual machine) is dedicated to that application > 2) that application is difficult to change
Yes, the customer actually wants a global setting. But as suggested by Neal, I changed it to be per-namespace to match other TCP tunables.
Thanks, - Haiyang
| |