From nobody Mon Mar 28 09:15:59 2022 X-Original-To: dev-commits-src-all@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 0D0DE1A4103E; Mon, 28 Mar 2022 09:16:00 +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 4KRn9q5ltMz4sVg; Mon, 28 Mar 2022 09:15:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1648458959; 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=JARk7KeKeYQ82KtzyDJBwwzpkfMv2uAYIJvzBQjtwZQ=; b=i8I+wMoQIwMS3pdtBu5xRuJ51j1qicyZuzAUpMSw8++Djm+RLQAXK+HeNBXYXl36UKLzZw KcHH+gJSLlACU1X0dIabVLz5xyZMuaVWwPqkTLEFWHJ5OpWpg+EPwIPWFuuGF+EbGK2tG0 SxQqr7iu9qOd3S/DrUwW+d2Sdelc37Kw/DY7c9cBcJToZ/ZzRHJCIV1tFrqK4N8o38oIGM 8PqOTh4aXwXnWvkgIr1wL/XUu7exoAkAArOtM1ZQYdC5NXQmH/wvUKMzwVTF4bLnmX+8cu 4Bjq92GAhkE8Y/IjU1716b/mIK2ztKvOuUJ+1GZUJWafBwXE32V9zGY2LiD5qw== 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 A1F9926FC5; Mon, 28 Mar 2022 09:15:59 +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 22S9FxUu087632; Mon, 28 Mar 2022 09:15:59 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 22S9FxeE087631; Mon, 28 Mar 2022 09:15:59 GMT (envelope-from git) Date: Mon, 28 Mar 2022 09:15:59 GMT Message-Id: <202203280915.22S9FxeE087631@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Alexander V. Chernikov" Subject: git: 057793e63771 - stable/13 - tcp: virtualise net.inet.tcp.msl sysctl. List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: melifaro X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 057793e63771816315cb54869c067b1c2b2bb4dc Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1648458959; 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=JARk7KeKeYQ82KtzyDJBwwzpkfMv2uAYIJvzBQjtwZQ=; b=FjFE5FCGm9HKKSON8ItlWNCE6ciagnXI3nExxCZ49EB8O4El0zMB8zMz4lL2P5U+vaqvP2 +88NBP+zgHTtpYCc3Vn5AKqZdLOrYojEn7LfcguicLs0Bi7/w9DGWKEdHYO+ER2PLkXyiV lzF3A2e9XJoQnd/4GfARxN0GenU2Dk+KbbxwwnhB4MV6RqCd8i/pIUxzXT9DGSnzTvrH2u JWfK9LY6R2/jsU94aYz3t500Fbe+65G1zo2ByEEO6RHDVjJCEpRKUPDZ3zHAnFytdwvf/6 U5OM5UfmM/k5ufEY4pM0MyfFYxgdlbqgrSxc5hlKBbQYiLv5gxvOqmQ0A6WpKQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1648458959; a=rsa-sha256; cv=none; b=tFUauQOhCV/6GrB85k9yLsulv+poYcnoPPCdPLU9ztkfbHGL9W44JMJM32RzruxgHA+bXh z+YdL+anPmXTy5icSEDzoctLxAjff0WS8ALUMljtP6uSTsmoeCWRKx3ipBp6y3b0kkO6/C Wrvm0uCEQF1NiqGT2cjhsq8xtdekZrO4ZcnHGid5ZJfMyQrswiE1fMIjNZUH/6EQBWm4xD CGNgThflYqjTraMUBkcLgW4Sy4A6vLFVi0ZSBC50xVHqrevTeUoce+w/hz/4OhMh9bigt9 NopgMLVAOm658rIHG+slGqB56hubJVZefn+5VxG27viWaJT04/O4HcUbeq+0kA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by melifaro: URL: https://cgit.FreeBSD.org/src/commit/?id=057793e63771816315cb54869c067b1c2b2bb4dc commit 057793e63771816315cb54869c067b1c2b2bb4dc Author: Alexander V. Chernikov AuthorDate: 2021-12-04 22:02:44 +0000 Commit: Alexander V. Chernikov CommitDate: 2022-03-28 08:46:13 +0000 tcp: virtualise net.inet.tcp.msl sysctl. VNET teardown waits 2*MSL (60 seconds by default) before expiring tcp PCBs. These PCBs holds references to nexthops, which, in turn, reference ifnets. This chain results in VNET interfaces being destroyed and moved to default VNET only after 60 seconds. Allow tcp_msl to be set in jail by virtualising net.inet.tcp.msl sysctl, permitting more predictable VNET tests outcomes. MFC after: 1 week Reviewed by: glebius Differential Revision: https://reviews.freebsd.org/D33270 (cherry picked from commit c2c8e360d8c0b8712158d334686d88f052aef819) --- sys/netinet/tcp_subr.c | 5 +++-- sys/netinet/tcp_timer.c | 6 +++--- sys/netinet/tcp_timer.h | 3 ++- sys/netinet/tcp_timewait.c | 2 +- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/sys/netinet/tcp_subr.c b/sys/netinet/tcp_subr.c index f435ced03e09..62042df50d18 100644 --- a/sys/netinet/tcp_subr.c +++ b/sys/netinet/tcp_subr.c @@ -1451,19 +1451,20 @@ tcp_init(void) tcp_fastopen_init(); + V_tcp_msl = TCPTV_MSL; + /* Skip initialization of globals for non-default instances. */ if (!IS_DEFAULT_VNET(curvnet)) return; tcp_reass_global_init(); - /* XXX virtualize those bellow? */ + /* XXX virtualize those below? */ tcp_delacktime = TCPTV_DELACK; tcp_keepinit = TCPTV_KEEP_INIT; tcp_keepidle = TCPTV_KEEP_IDLE; tcp_keepintvl = TCPTV_KEEPINTVL; tcp_maxpersistidle = TCPTV_KEEP_IDLE; - tcp_msl = TCPTV_MSL; tcp_rexmit_initial = TCPTV_RTOBASE; if (tcp_rexmit_initial < 1) tcp_rexmit_initial = 1; diff --git a/sys/netinet/tcp_timer.c b/sys/netinet/tcp_timer.c index 96b95ab1c15f..4b00b686be32 100644 --- a/sys/netinet/tcp_timer.c +++ b/sys/netinet/tcp_timer.c @@ -117,10 +117,10 @@ SYSCTL_PROC(_net_inet_tcp, TCPCTL_DELACKTIME, delacktime, &tcp_delacktime, 0, sysctl_msec_to_ticks, "I", "Time before a delayed ACK is sent"); -int tcp_msl; +VNET_DEFINE(int, tcp_msl); SYSCTL_PROC(_net_inet_tcp, OID_AUTO, msl, - CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, - &tcp_msl, 0, sysctl_msec_to_ticks, "I", + CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_VNET, + &VNET_NAME(tcp_msl), 0, sysctl_msec_to_ticks, "I", "Maximum segment lifetime"); int tcp_rexmit_initial; diff --git a/sys/netinet/tcp_timer.h b/sys/netinet/tcp_timer.h index 9a711d173386..316b76e50f7e 100644 --- a/sys/netinet/tcp_timer.h +++ b/sys/netinet/tcp_timer.h @@ -195,7 +195,6 @@ extern int tcp_maxpersistidle; extern int tcp_rexmit_initial; extern int tcp_rexmit_min; extern int tcp_rexmit_slop; -extern int tcp_msl; extern int tcp_ttl; /* time to live for TCP segs */ extern int tcp_backoff[]; extern int tcp_totbackoff; @@ -212,6 +211,8 @@ VNET_DECLARE(int, tcp_pmtud_blackhole_mss); #define V_tcp_pmtud_blackhole_mss VNET(tcp_pmtud_blackhole_mss) VNET_DECLARE(int, tcp_v6pmtud_blackhole_mss); #define V_tcp_v6pmtud_blackhole_mss VNET(tcp_v6pmtud_blackhole_mss) +VNET_DECLARE(int, tcp_msl); +#define V_tcp_msl VNET(tcp_msl) void tcp_inpinfo_lock_del(struct inpcb *inp, struct tcpcb *tp); diff --git a/sys/netinet/tcp_timewait.c b/sys/netinet/tcp_timewait.c index ee31c449cd1e..970f46274791 100644 --- a/sys/netinet/tcp_timewait.c +++ b/sys/netinet/tcp_timewait.c @@ -744,7 +744,7 @@ tcp_tw_2msl_reset(struct tcptw *tw, int rearm) TW_WLOCK(V_tw_lock); if (rearm) TAILQ_REMOVE(&V_twq_2msl, tw, tw_2msl); - tw->tw_time = ticks + 2 * tcp_msl; + tw->tw_time = ticks + 2 * V_tcp_msl; TAILQ_INSERT_TAIL(&V_twq_2msl, tw, tw_2msl); TW_WUNLOCK(V_tw_lock); }