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>