From nobody Wed Aug 17 18:52:19 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 4M7HFJ0xSdz4Yxt8; Wed, 17 Aug 2022 18:52:20 +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 4M7HFH66Wsz4CcL; Wed, 17 Aug 2022 18:52:19 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1660762339; 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=ZmHC8mxr2/gtOVX28dLGw4iqMTuDVYCK/ZxqNaLj4UM=; b=lKUt15/8D9KVEfaO+Htj1RaxIGHcqm3/2jJ59vA43sCogH95QLYx2908w6xTh9ImfyCNPj umNyQMU3JbliIH2TcA+E6oQy95BpuY/FTrl35MFc9cUrV60hASwNcVtbjjdb5GBxDDC94w vsheaq4WfmeNBWt4Y9FlfBXqadKlXsNyYA1/aMSBlaflPV8mf7c6J6X6E7Ew4XdvHVW81c eYfDMYKqtJkXxAaHa0tvJWEzJaw0cBHjRF+pEL8D+PMnk4yT7/Xc/sOkFykQr4Xor0l6+l nRBpgPN0DvSuxedR5gfdnaV8gaD1iFdDeBZ/jdjNG/ZPc5gNdFVL4z0hxgPM+Q== 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 4M7HFH4GzJz10qk; Wed, 17 Aug 2022 18:52:19 +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 27HIqJq6013064; Wed, 17 Aug 2022 18:52:19 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 27HIqJHE013063; Wed, 17 Aug 2022 18:52:19 GMT (envelope-from git) Date: Wed, 17 Aug 2022 18:52:19 GMT Message-Id: <202208171852.27HIqJHE013063@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Gleb Smirnoff Subject: git: a0d7d2476f64 - main - frag6: use callout(9) directly instead of pr_slowtimo 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: glebius X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: a0d7d2476f64b295978463e57f87f9f87b3c701f Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1660762339; 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=ZmHC8mxr2/gtOVX28dLGw4iqMTuDVYCK/ZxqNaLj4UM=; b=v64yNla3aqB5jFiCMxcqmfwnWH3cUky5BuEAbnhgJwQQ3BCiqbbz8pg/cWBK4Y8NM5fV4b eJcSgnJhQEDHOAVUzOSwtPQtV6q9xbhWGifHR6VXSgKhKNP7yu2EzjQnhrj2Ej1j32CujV oNpGUOdSCnehZ6T1Un2n0bQo1pnH9r/QOJt46lQNvlety7c3aYrK08dqREGtbLxvpciuzI 1qj9Pa3nyOoLxvi2om3hhL//PVXfOfpaSYuSSwFKU37m/fK9/WnvqpNZeSMSSEr6pPDoMM cGQsnY1VZLGwc/4E/MBxbPMHbMADn4Sz129I+QT2CuDavWNrhZmD8baWqPhyjw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1660762339; a=rsa-sha256; cv=none; b=FxFCqPrSiDbBCBU8fTOne8h4P83Q/wdM5G3+PjDUse48G6wEjFBPYVrNyfM1twOifPwv34 YaTaCMqFlZGE8rzpBjoY8R/Fg9szD73KkRa73jyzzOnyutfMCSoKrhr54ed62aUgR38gYD EH/JChxcaAxWPcQKPiV86OGaV4DXRSfuI0xvSucf1vHMVDesP9JfG0cD55hjUDVsnBsf+4 YyLftKqX+MPCvNxb46AVpVgBkiCxCXzthsIhVlHNnBR/al/fhJ3BRXnT3pgz4JVdA0u/Ym MXmwkru2+O3KxM5CpzV1k8tS6m+ZssGfKlUC2Go5X/9S0sV54yhchOj3YVTeHQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by glebius: URL: https://cgit.FreeBSD.org/src/commit/?id=a0d7d2476f64b295978463e57f87f9f87b3c701f commit a0d7d2476f64b295978463e57f87f9f87b3c701f Author: Gleb Smirnoff AuthorDate: 2022-08-17 18:50:31 +0000 Commit: Gleb Smirnoff CommitDate: 2022-08-17 18:50:31 +0000 frag6: use callout(9) directly instead of pr_slowtimo Reviewed by: melifaro Differential revision: https://reviews.freebsd.org/D36162 --- sys/netinet6/frag6.c | 20 +++++++++++++++++--- sys/netinet6/in6_proto.c | 1 - sys/netinet6/ip6_var.h | 1 - 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/sys/netinet6/frag6.c b/sys/netinet6/frag6.c index e0857d3af3e8..9f12d4d691b6 100644 --- a/sys/netinet6/frag6.c +++ b/sys/netinet6/frag6.c @@ -883,8 +883,9 @@ dropfrag2: * IPv6 reassembling timer processing; * if a timer expires on a reassembly queue, discard it. */ -void -frag6_slowtimo(void) +static struct callout frag6_callout; +static void +frag6_slowtimo(void *arg __unused) { VNET_ITERATOR_DECL(vnet_iter); struct ip6qhead *head; @@ -892,7 +893,7 @@ frag6_slowtimo(void) uint32_t bucket; if (atomic_load_int(&frag6_nfrags) == 0) - return; + goto done; VNET_LIST_RLOCK_NOSLEEP(); VNET_FOREACH(vnet_iter) { @@ -949,7 +950,20 @@ frag6_slowtimo(void) CURVNET_RESTORE(); } VNET_LIST_RUNLOCK_NOSLEEP(); +done: + callout_reset_sbt(&frag6_callout, SBT_1MS * 500, SBT_1MS * 10, + frag6_slowtimo, NULL, 0); +} + +static void +frag6_slowtimo_init(void *arg __unused) +{ + + callout_init(&frag6_callout, 1); + callout_reset_sbt(&frag6_callout, SBT_1MS * 500, SBT_1MS * 10, + frag6_slowtimo, NULL, 0); } +SYSINIT(frag6, SI_SUB_VNET_DONE, SI_ORDER_ANY, frag6_slowtimo_init, NULL); /* * Eventhandler to adjust limits in case nmbclusters change. diff --git a/sys/netinet6/in6_proto.c b/sys/netinet6/in6_proto.c index f437234b71a3..52534c579003 100644 --- a/sys/netinet6/in6_proto.c +++ b/sys/netinet6/in6_proto.c @@ -146,7 +146,6 @@ struct protosw inet6sw[] = { .pr_domain = &inet6domain, .pr_protocol = IPPROTO_IPV6, .pr_flags = PR_CAPATTACH, - .pr_slowtimo = frag6_slowtimo, .pr_drain = frag6_drain, .pr_usrreqs = &nousrreqs, }, diff --git a/sys/netinet6/ip6_var.h b/sys/netinet6/ip6_var.h index 9d997e772ba4..c78cf52946fe 100644 --- a/sys/netinet6/ip6_var.h +++ b/sys/netinet6/ip6_var.h @@ -391,7 +391,6 @@ int route6_input(struct mbuf **, int *, int); void frag6_init(void); void frag6_destroy(void); int frag6_input(struct mbuf **, int *, int); -void frag6_slowtimo(void); void frag6_drain(void); void rip6_init(void);