Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 16 Nov 2019 14:56:14 +0100
From:      Michael Tuexen <tuexen@freebsd.org>
To:        rgrimes@freebsd.org
Cc:        koobs@freebsd.org, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r354708 - head/sys/netinet/cc
Message-ID:  <2CA1817F-A637-4E9D-8E84-505A00EB127D@freebsd.org>
In-Reply-To: <201911161233.xAGCXCNt057443@gndrsh.dnsmgr.net>
References:  <201911161233.xAGCXCNt057443@gndrsh.dnsmgr.net>

next in thread | previous in thread | raw e-mail | index | archive | help
> On 16. Nov 2019, at 13:33, Rodney W. Grimes =
<freebsd@gndrsh.dnsmgr.net> wrote:
>=20
>>> On 16. Nov 2019, at 11:51, Rodney W. Grimes =
<freebsd@gndrsh.dnsmgr.net> wrote:
>>>=20
>>>> On 15/11/2019 3:28 am, Michael Tuexen wrote:
>>>>> Author: tuexen
>>>>> Date: Thu Nov 14 16:28:02 2019
>>>>> New Revision: 354708
>>>>> URL: https://svnweb.freebsd.org/changeset/base/354708
>>>>>=20
>>>>> Log:
>>>>>  For idle TCP sessions using the CUBIC congestio control, reset =
ssthresh
>>>>>  to the higher of the previous ssthresh or 3/4 of the prior cwnd.
>>>>>=20
>>>>>  Submitted by:		Richard Scheffenegger
>>>>>  Reviewed by:		Cheng Cui
>>>>>  Differential Revision:	https://reviews.freebsd.org/D18982
>>>>>=20
>>>>> Modified:
>>>>>  head/sys/netinet/cc/cc_cubic.c
>>>>=20
>>>> Are stable/12,11 affected by this too?
>>>=20
>>> I am sitting here with Richard at IETF and the answer is yes,
>>> this is an oversight since the code came into FreeBSD,
>>> this commit should be merged to back to 11 and 12.
>> Hi Rod,
>>=20
>> do you suggest to MFC
>>=20
>> * https://svnweb.freebsd.org/changeset/base/354772
>> * https://svnweb.freebsd.org/changeset/base/354773
>> * https://svnweb.freebsd.org/changeset/base/354774
>>=20
>> At the last transport telco we decided that the corresponding review =
are
>> open for too long without an explicit approval, but the changes =
should
>> go into the tree. So we agree that I commit it to head without a plan
>> for MFCing.
>>=20
>> If you say the changes are good and they should be MFCed, I'll MFC =
them.
>=20
> Lets bake them in head for 30 days or 4 weeks in the hopes that they =
get some testing.
OK.

Best regards
Michael
> Given that these issues have been here for so long, and no one has =
reported
> any of these problems leads me to believe the code is simply unused =
and
> if we broke something it would not get found no mater how long we =
waited.
>=20
>>=20
>> Best regards
>> Michael
>>>=20
>>>>> Modified: head/sys/netinet/cc/cc_cubic.c
>>>>> =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
>>>>> --- head/sys/netinet/cc/cc_cubic.c	Thu Nov 14 15:10:01 2019	=
(r354707)
>>>>> +++ head/sys/netinet/cc/cc_cubic.c	Thu Nov 14 16:28:02 2019	=
(r354708)
>>>>> @@ -78,6 +78,7 @@ static int	cubic_mod_init(void);
>>>>> static void	cubic_post_recovery(struct cc_var *ccv);
>>>>> static void	cubic_record_rtt(struct cc_var *ccv);
>>>>> static void	cubic_ssthresh_update(struct cc_var *ccv);
>>>>> +static void	cubic_after_idle(struct cc_var *ccv);
>>>>>=20
>>>>> struct cubic {
>>>>> 	/* Cubic K in fixed point form with CUBIC_SHIFT worth of =
precision. */
>>>>> @@ -112,6 +113,7 @@ struct cc_algo cubic_cc_algo =3D {
>>>>> 	.conn_init =3D cubic_conn_init,
>>>>> 	.mod_init =3D cubic_mod_init,
>>>>> 	.post_recovery =3D cubic_post_recovery,
>>>>> +	.after_idle =3D cubic_after_idle,
>>>>> };
>>>>>=20
>>>>> static void
>>>>> @@ -192,7 +194,24 @@ cubic_ack_received(struct cc_var *ccv, =
uint16_t type)
>>>>> 	}
>>>>> }
>>>>>=20
>>>>> +/*
>>>>> + * This is a Cubic specific implementation of after_idle.
>>>>> + *   - Reset cwnd by calling New Reno implementation of =
after_idle.
>>>>> + *   - Reset t_last_cong.
>>>>> + */
>>>>> static void
>>>>> +cubic_after_idle(struct cc_var *ccv)
>>>>> +{
>>>>> +	struct cubic *cubic_data;
>>>>> +
>>>>> +	cubic_data =3D ccv->cc_data;
>>>>> +
>>>>> +	newreno_cc_algo.after_idle(ccv);
>>>>> +	cubic_data->t_last_cong =3D ticks;
>>>>> +}
>>>>> +
>>>>> +
>>>>> +static void
>>>>> cubic_cb_destroy(struct cc_var *ccv)
>>>>> {
>>>>> 	free(ccv->cc_data, M_CUBIC);
>>>>> @@ -287,9 +306,6 @@ cubic_conn_init(struct cc_var *ccv)
>>>>> static int
>>>>> cubic_mod_init(void)
>>>>> {
>>>>> -
>>>>> -	cubic_cc_algo.after_idle =3D newreno_cc_algo.after_idle;
>>>>> -
>>>>> 	return (0);
>>>>> }
>>>>>=20
>>>>> _______________________________________________
>>>>> svn-src-head@freebsd.org mailing list
>>>>> https://lists.freebsd.org/mailman/listinfo/svn-src-head
>>>>> To unsubscribe, send any mail to =
"svn-src-head-unsubscribe@freebsd.org"
>>>=20
>>> --=20
>>> Rod Grimes                                                 =
rgrimes@freebsd.org
>>=20
>>=20
>>=20
>=20
> --=20
> Rod Grimes                                                 =
rgrimes@freebsd.org




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?2CA1817F-A637-4E9D-8E84-505A00EB127D>