Date: Fri, 15 Nov 2019 12:07:13 +1100 From: Kubilay Kocak <koobs@FreeBSD.org> To: Michael Tuexen <tuexen@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: <0a9e49e9-b81a-3367-2d7d-6d748e83f36d@FreeBSD.org> In-Reply-To: <201911141628.xAEGS3QO052853@repo.freebsd.org> References: <201911141628.xAEGS3QO052853@repo.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
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? > 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@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" >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?0a9e49e9-b81a-3367-2d7d-6d748e83f36d>