Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F163406577
D29246.id85687.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
3 KB
Referenced Files
None
Subscribers
None
D29246.id85687.diff
View Options
Index: sys/netpfil/ipfw/ip_dn_io.c
===================================================================
--- sys/netpfil/ipfw/ip_dn_io.c
+++ sys/netpfil/ipfw/ip_dn_io.c
@@ -80,14 +80,6 @@
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 @@
/* 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 @@
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 @@
* 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 */
Index: sys/netpfil/ipfw/ip_dn_private.h
===================================================================
--- sys/netpfil/ipfw/ip_dn_private.h
+++ sys/netpfil/ipfw/ip_dn_private.h
@@ -125,6 +125,14 @@
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;
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Thu, Jul 23, 10:39 PM (15 h, 44 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
35418172
Default Alt Text
D29246.id85687.diff (3 KB)
Attached To
Mode
D29246: dummynet: Move timekeeping information into dn_cfg
Attached
Detach File
Event Timeline
Log In to Comment