From owner-dev-commits-src-branches@freebsd.org  Wed Apr  7 15:48:09 2021
Return-Path: <owner-dev-commits-src-branches@freebsd.org>
Delivered-To: dev-commits-src-branches@mailman.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.nyi.freebsd.org (Postfix) with ESMTP id D91BC5BAD51;
 Wed,  7 Apr 2021 15:48:09 +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 4FFph94F2pz3lws;
 Wed,  7 Apr 2021 15:48:09 +0000 (UTC) (envelope-from git@FreeBSD.org)
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 7F33D21CA1;
 Wed,  7 Apr 2021 15:48:09 +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 137Fm9BB033976;
 Wed, 7 Apr 2021 15:48:09 GMT (envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
 by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 137Fm9nZ033975;
 Wed, 7 Apr 2021 15:48:09 GMT (envelope-from git)
Date: Wed, 7 Apr 2021 15:48:09 GMT
Message-Id: <202104071548.137Fm9nZ033975@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
 dev-commits-src-branches@FreeBSD.org
From: Kristof Provost <kp@FreeBSD.org>
Subject: git: da7865ad1f1b - stable/13 - dummynet: Move timekeeping
 information into dn_cfg
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: kp
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: da7865ad1f1bf27688faf03efe7aa0db680769a2
Auto-Submitted: auto-generated
X-BeenThere: dev-commits-src-branches@freebsd.org
X-Mailman-Version: 2.1.34
Precedence: list
List-Id: Commits to the stable branches of the FreeBSD src repository
 <dev-commits-src-branches.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/dev-commits-src-branches>, 
 <mailto:dev-commits-src-branches-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/dev-commits-src-branches/>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Help: <mailto:dev-commits-src-branches-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/dev-commits-src-branches>, 
 <mailto:dev-commits-src-branches-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 07 Apr 2021 15:48:10 -0000

The branch stable/13 has been updated by kp:

URL: https://cgit.FreeBSD.org/src/commit/?id=da7865ad1f1bf27688faf03efe7aa0db680769a2

commit da7865ad1f1bf27688faf03efe7aa0db680769a2
Author:     Kristof Provost <kp@FreeBSD.org>
AuthorDate: 2021-03-09 15:44:26 +0000
Commit:     Kristof Provost <kp@FreeBSD.org>
CommitDate: 2021-04-07 15:25:54 +0000

    dummynet: Move timekeeping information into dn_cfg
    
    Just like with the packet counters move the timekeeping information into
    dn_cfg. This reduces the global name space use for dummynet and will
    make subsequent work to add vnet support and re-use in pf easier.
    
    Reviewed by:    donner
    MFC after:      2 weeks
    Sponsored by:   Rubicon Communications, LLC ("Netgate")
    Different Revision:     https://reviews.freebsd.org/D29246
    
    (cherry picked from commit 320bed3c007be1c2ff1f4b0d00d64d541d807fed)
---
 sys/netpfil/ipfw/ip_dn_io.c      | 44 ++++++++++++++++------------------------
 sys/netpfil/ipfw/ip_dn_private.h |  8 ++++++++
 2 files changed, 26 insertions(+), 26 deletions(-)

diff --git a/sys/netpfil/ipfw/ip_dn_io.c b/sys/netpfil/ipfw/ip_dn_io.c
index f71d07ae1140..b439d2679f3c 100644
--- a/sys/netpfil/ipfw/ip_dn_io.c
+++ b/sys/netpfil/ipfw/ip_dn_io.c
@@ -80,14 +80,6 @@ __FBSDID("$FreeBSD$");
 struct dn_parms dn_cfg;
 //VNET_DEFINE(struct dn_parms, _base_dn_cfg);
 
-static long tick_last;		/* Last tick duration (usec). */
-static long tick_delta;		/* Last vs standard tick diff (usec). */
-static long tick_delta_sum;	/* Accumulated tick difference (usec).*/
-static long tick_adjustment;	/* Tick adjustments done. */
-static long tick_lost;		/* Lost(coalesced) ticks number. */
-/* Adjusted vs non-adjusted curr_time difference (ticks). */
-static long tick_diff;
-
 /*
  * We use a heap to store entities for which we have pending timer events.
  * The heap is checked at every tick and all entities with expired events
@@ -192,16 +184,16 @@ SYSCTL_INT(_net_inet_ip_dummynet, OID_AUTO, red_max_pkt_size,
 
 /* time adjustment */
 SYSCTL_LONG(_net_inet_ip_dummynet, OID_AUTO, tick_delta,
-    CTLFLAG_RD, &tick_delta, 0, "Last vs standard tick difference (usec).");
+    CTLFLAG_RD, DC(tick_delta), 0, "Last vs standard tick difference (usec).");
 SYSCTL_LONG(_net_inet_ip_dummynet, OID_AUTO, tick_delta_sum,
-    CTLFLAG_RD, &tick_delta_sum, 0, "Accumulated tick difference (usec).");
+    CTLFLAG_RD, DC(tick_delta_sum), 0, "Accumulated tick difference (usec).");
 SYSCTL_LONG(_net_inet_ip_dummynet, OID_AUTO, tick_adjustment,
-    CTLFLAG_RD, &tick_adjustment, 0, "Tick adjustments done.");
+    CTLFLAG_RD, DC(tick_adjustment), 0, "Tick adjustments done.");
 SYSCTL_LONG(_net_inet_ip_dummynet, OID_AUTO, tick_diff,
-    CTLFLAG_RD, &tick_diff, 0,
+    CTLFLAG_RD, DC(tick_diff), 0,
     "Adjusted vs non-adjusted curr_time difference (ticks).");
 SYSCTL_LONG(_net_inet_ip_dummynet, OID_AUTO, tick_lost,
-    CTLFLAG_RD, &tick_lost, 0,
+    CTLFLAG_RD, DC(tick_lost), 0,
     "Number of ticks coalesced by dummynet taskqueue.");
 
 /* Drain parameters */
@@ -665,16 +657,16 @@ dummynet_task(void *context, int pending)
 	DN_BH_WLOCK();
 
 	/* Update number of lost(coalesced) ticks. */
-	tick_lost += pending - 1;
+	dn_cfg.tick_lost += pending - 1;
 
 	getmicrouptime(&t);
 	/* Last tick duration (usec). */
-	tick_last = (t.tv_sec - dn_cfg.prev_t.tv_sec) * 1000000 +
+	dn_cfg.tick_last = (t.tv_sec - dn_cfg.prev_t.tv_sec) * 1000000 +
 	(t.tv_usec - dn_cfg.prev_t.tv_usec);
 	/* Last tick vs standard tick difference (usec). */
-	tick_delta = (tick_last * hz - 1000000) / hz;
+	dn_cfg.tick_delta = (dn_cfg.tick_last * hz - 1000000) / hz;
 	/* Accumulated tick difference (usec). */
-	tick_delta_sum += tick_delta;
+	dn_cfg.tick_delta_sum += dn_cfg.tick_delta;
 
 	dn_cfg.prev_t = t;
 
@@ -686,18 +678,18 @@ dummynet_task(void *context, int pending)
 	* adjustment.
 	*/
 	dn_cfg.curr_time++;
-	if (tick_delta_sum - tick >= 0) {
-		int diff = tick_delta_sum / tick;
+	if (dn_cfg.tick_delta_sum - tick >= 0) {
+		int diff = dn_cfg.tick_delta_sum / tick;
 
 		dn_cfg.curr_time += diff;
-		tick_diff += diff;
-		tick_delta_sum %= tick;
-		tick_adjustment++;
-	} else if (tick_delta_sum + tick <= 0) {
+		dn_cfg.tick_diff += diff;
+		dn_cfg.tick_delta_sum %= tick;
+		dn_cfg.tick_adjustment++;
+	} else if (dn_cfg.tick_delta_sum + tick <= 0) {
 		dn_cfg.curr_time--;
-		tick_diff--;
-		tick_delta_sum += tick;
-		tick_adjustment++;
+		dn_cfg.tick_diff--;
+		dn_cfg.tick_delta_sum += tick;
+		dn_cfg.tick_adjustment++;
 	}
 
 	/* serve pending events, accumulate in q */
diff --git a/sys/netpfil/ipfw/ip_dn_private.h b/sys/netpfil/ipfw/ip_dn_private.h
index 38c6ff1201d5..6e48bc5116a7 100644
--- a/sys/netpfil/ipfw/ip_dn_private.h
+++ b/sys/netpfil/ipfw/ip_dn_private.h
@@ -125,6 +125,14 @@ struct dn_parms {
 	struct timeval prev_t;		/* last time dummynet_tick ran */
 	struct dn_heap	evheap;		/* scheduled events */
 
+	long	tick_last;		/* Last tick duration (usec). */
+	long	tick_delta;		/* Last vs standard tick diff (usec). */
+	long	tick_delta_sum;	/* Accumulated tick difference (usec).*/
+	long	tick_adjustment;	/* Tick adjustments done. */
+	long	tick_lost;		/* Lost(coalesced) ticks number. */
+	/* Adjusted vs non-adjusted curr_time difference (ticks). */
+	long	tick_diff;
+
 	/* counters of objects -- used for reporting space */
 	int	schk_count;
 	int	si_count;