svn commit: r354708 - head/sys/netinet/cc

Michael Tuexen tuexen at freebsd.org
Sat Nov 16 13:56:23 UTC 2019


> On 16. Nov 2019, at 13:33, Rodney W. Grimes <freebsd at gndrsh.dnsmgr.net> wrote:
> 
>>> On 16. Nov 2019, at 11:51, Rodney W. Grimes <freebsd at gndrsh.dnsmgr.net> wrote:
>>> 
>>>> 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
>>>>> 
>>>>> 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.
>>>>> 
>>>>>  Submitted by:		Richard Scheffenegger
>>>>>  Reviewed by:		Cheng Cui
>>>>>  Differential Revision:	https://reviews.freebsd.org/D18982
>>>>> 
>>>>> Modified:
>>>>>  head/sys/netinet/cc/cc_cubic.c
>>>> 
>>>> Are stable/12,11 affected by this too?
>>> 
>>> 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,
>> 
>> do you suggest to MFC
>> 
>> * https://svnweb.freebsd.org/changeset/base/354772
>> * https://svnweb.freebsd.org/changeset/base/354773
>> * https://svnweb.freebsd.org/changeset/base/354774
>> 
>> 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.
>> 
>> If you say the changes are good and they should be MFCed, I'll MFC them.
> 
> 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.
> 
>> 
>> Best regards
>> Michael
>>> 
>>>>> Modified: head/sys/netinet/cc/cc_cubic.c
>>>>> ==============================================================================
>>>>> --- 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);
>>>>> 
>>>>> struct cubic {
>>>>> 	/* Cubic K in fixed point form with CUBIC_SHIFT worth of precision. */
>>>>> @@ -112,6 +113,7 @@ struct cc_algo cubic_cc_algo = {
>>>>> 	.conn_init = cubic_conn_init,
>>>>> 	.mod_init = cubic_mod_init,
>>>>> 	.post_recovery = cubic_post_recovery,
>>>>> +	.after_idle = cubic_after_idle,
>>>>> };
>>>>> 
>>>>> static void
>>>>> @@ -192,7 +194,24 @@ cubic_ack_received(struct cc_var *ccv, uint16_t type)
>>>>> 	}
>>>>> }
>>>>> 
>>>>> +/*
>>>>> + * 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 = ccv->cc_data;
>>>>> +
>>>>> +	newreno_cc_algo.after_idle(ccv);
>>>>> +	cubic_data->t_last_cong = 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 = newreno_cc_algo.after_idle;
>>>>> -
>>>>> 	return (0);
>>>>> }
>>>>> 
>>>>> _______________________________________________
>>>>> svn-src-head at freebsd.org mailing list
>>>>> https://lists.freebsd.org/mailman/listinfo/svn-src-head
>>>>> To unsubscribe, send any mail to "svn-src-head-unsubscribe at freebsd.org"
>>> 
>>> -- 
>>> Rod Grimes                                                 rgrimes at freebsd.org
>> 
>> 
>> 
> 
> -- 
> Rod Grimes                                                 rgrimes at freebsd.org



More information about the svn-src-all mailing list