[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1e41a3230804281221s11442a82j55c363116988a5cb@mail.gmail.com>
Date: Mon, 28 Apr 2008 12:21:53 -0700
From: "John Heffner" <johnwheffner@...il.com>
To: "Jerry Chu" <hkchu@...gle.com>
Cc: "David Miller" <davem@...emloft.net>, netdev@...r.kernel.org,
rick.jones2@...com
Subject: Re: Socket buffer sizes with autotuning
On Mon, Apr 28, 2008 at 11:30 AM, Jerry Chu <hkchu@...gle.com> wrote:
> Correct, but its counterpart doesn't exist in tcp_is_cwnd_limited(). So
> cwnd will continue to grow when left < cwnd/sysctl_tcp_tso_win_divisor,
> which can be very large when cwnd is large.
>
> If I change tcp_tso_win_divisor to 0, cwnd max out at 695 rather than 1037,
> exactly off by 1/3. I tried to add the same check to tcp_is_cwnd_limited():
>
> diff -c /tmp/tcp.h.old tcp.h
> *** /tmp/tcp.h.old Mon Apr 28 11:00:44 2008
> --- tcp.h Mon Apr 28 10:54:10 2008
> ***************
> *** 828,833 ****
> --- 828,835 ----
> return 0;
>
> left = tp->snd_cwnd - in_flight;
> + if (left >= 65536)
> + return 0;
> if (sysctl_tcp_tso_win_divisor)
> return left * sysctl_tcp_tso_win_divisor < tp->snd_cwnd;
> else
>
> >
>
> But it doesn't seem to help (cwnd still grows to 1037).
Cwnd is in packets, not bytes.
Try this series of patches, against net-next.
-John
View attachment "0001-NET-Allow-send-limited-cwnd-to-grow-up-to-max_bur.patch" of type "text/x-diff" (1231 bytes)
View attachment "0002-NET-Limit-cwnd-growth-when-deferring-for-GSO.patch" of type "text/x-diff" (992 bytes)
Powered by blists - more mailing lists