From nobody Fri Apr 01 12:35:38 2022 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 012AE1A3C57A; Fri, 1 Apr 2022 12:35:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4KVKQL6LQtz4ZK1; Fri, 1 Apr 2022 12:35:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1648816538; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5TD36tRopNUJQSOzwhfFq5QXh3zOwYIH5YTU7eAtChE=; b=VZwxzsvWvm947tJiYt3PAqHXbCywz2fFHkN+6O9ztJxUmqpLmPKB+8EfVdb/R1lBFfMH4w nLpWKhA9NQ3ZbLUDHq8UDnVdDXu5Imz0Fw0Dbrbwzp4o/bvReWO1E5XEcUYbhSwNNjAAUq yOAiq+0qyi8aaT/Bm91Db/vtUV9tUtRruObOmfmq6qgFSyIm5YKrTS37KVY7IG6lG/7Vbo r0rFFseGmp9Pgk12yG7YJtiV4hUwPZz/KK9IwmoHjwzg4PitMG4LOHMzFPZljz6JCDQOlD gUEmBFR1pQcuzSnao7W697LJRTV4fGEuuGBvJw/8JipB4cFyz/R5IIkphmhjNA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B9DF814537; Fri, 1 Apr 2022 12:35:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 231CZcLe060595; Fri, 1 Apr 2022 12:35:38 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 231CZcVL060594; Fri, 1 Apr 2022 12:35:38 GMT (envelope-from git) Date: Fri, 1 Apr 2022 12:35:38 GMT Message-Id: <202204011235.231CZcVL060594@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Randall Stewart Subject: git: 653cf466f085 - main - hystart++ may not properly exit CSS back to slowstart. List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: rrs X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 653cf466f08584c0fd87bc336cdc1db08f0d4434 Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1648816538; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5TD36tRopNUJQSOzwhfFq5QXh3zOwYIH5YTU7eAtChE=; b=QmOHNUqaPxHz6ku9zTGHoaRRbONxm4q6CzK+is8vPlN2G1fwpNj711dHQVlyiWw2zc6S2o QldalID8+CC0VUJSTaenS45nAI/FxKaTgIQ/4q4KRUnp/VwSUVP9aRxTDqIItkJ6Z/iR1D D0E6sChAsqS3+ujBFeH744sWQ5vheCM74rBq9vD1CuIzDK9KGIHJZm9XVzuT0cjmN+L/S5 FPf1j2V4djXqJ8wb1tg/wZFDrGkypZUqHaP/tjeVwZOGw8jR2j5jFAMcsQvgGs771cpeqM 5Ukzg8pjoksiFxHxoL120MYLf2XLj9KC0I6hQefX+TzsvgLO46KV8fv3rSnWJA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1648816538; a=rsa-sha256; cv=none; b=PpImdkaTMVOjezBZab9m/Flep3GpMrmjuVRcSMfhm4ghowqm9+aP/H8e7xatNu+MsuNWPG dd/vRH/EDPHVsyxl76jr1zz4RQTPr4HnH8jA+sQPsXFaU00inwWNPrOCrETyt1GlZ6enMq ozf+f9StVuWdJ0Enx/kEykn5+4H7n6MhI2ezvt32kR7FHUpfu9gJUiG+GppXlWcwDEUEKQ KP3WOV6M6++r0tFM/BFHNElnvBf0opWWIpRC3Tr8f+o9sysgj070sfjAjDANM8GkbWxFBw JiVbrXdqVuJWF7Bl28yxKaYHb60KYjL0HdsTR14YWPONcngnbP7TXL4blPHEMg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by rrs: URL: https://cgit.FreeBSD.org/src/commit/?id=653cf466f08584c0fd87bc336cdc1db08f0d4434 commit 653cf466f08584c0fd87bc336cdc1db08f0d4434 Author: Randall Stewart AuthorDate: 2022-04-01 12:33:44 +0000 Commit: Randall Stewart CommitDate: 2022-04-01 12:33:44 +0000 hystart++ may not properly exit CSS back to slowstart. In the changes to get hystart++ into cubic an inadvertent line was removed in the conditional to figure out if you need to exit hystart++ back to slowstart. The line of course is the most crucial one (the others are valid but not critical) i.e. is the new rtt less than the point where we entered hystart++. Without the line we end up bouncing in and out of CSS. Reported By: Reese Enghardt Sponsored By: Netflix Inc. --- sys/netinet/cc/cc_cubic.c | 1 + sys/netinet/cc/cc_newreno.c | 1 + 2 files changed, 2 insertions(+) diff --git a/sys/netinet/cc/cc_cubic.c b/sys/netinet/cc/cc_cubic.c index e7d86a25156a..0291776928d4 100644 --- a/sys/netinet/cc/cc_cubic.c +++ b/sys/netinet/cc/cc_cubic.c @@ -658,6 +658,7 @@ cubic_rttsample(struct cc_var *ccv, uint32_t usec_rtt, uint32_t rxtcnt, uint32_t } if ((cubicd->css_rttsample_count >= hystart_n_rttsamples) && (cubicd->css_current_round_minrtt != 0xffffffff) && + (cubicd->css_current_round_minrtt < nreno->css_baseline_minrtt) && (cubicd->css_lastround_minrtt != 0xffffffff)) { /* * We were in CSS and the RTT is now less, we diff --git a/sys/netinet/cc/cc_newreno.c b/sys/netinet/cc/cc_newreno.c index 06b53d76d8e9..90895e0f6988 100644 --- a/sys/netinet/cc/cc_newreno.c +++ b/sys/netinet/cc/cc_newreno.c @@ -571,6 +571,7 @@ newreno_rttsample(struct cc_var *ccv, uint32_t usec_rtt, uint32_t rxtcnt, uint32 } if ((nreno->css_rttsample_count >= hystart_n_rttsamples) && (nreno->css_current_round_minrtt != 0xffffffff) && + (nreno->css_current_round_minrtt < nreno->css_baseline_minrtt) && (nreno->css_lastround_minrtt != 0xffffffff)) { /* * We were in CSS and the RTT is now less, we