mirror of
https://github.com/LibreQoE/LibreQoS.git
synced 2025-02-25 18:55:32 -06:00
Apply the atomic u64 pair to the rest of ThroughputTracker
This commit is contained in:
parent
fd8fbc43c2
commit
5a69ca5ea8
@ -131,13 +131,9 @@ async fn submit_throughput_stats(long_term_stats_tx: Sender<StatsUpdateMessage>)
|
|||||||
// Gather Global Stats
|
// Gather Global Stats
|
||||||
let packets_per_second = (
|
let packets_per_second = (
|
||||||
THROUGHPUT_TRACKER
|
THROUGHPUT_TRACKER
|
||||||
.packets_per_second
|
.packets_per_second.get_down(),
|
||||||
.0
|
|
||||||
.load(std::sync::atomic::Ordering::Relaxed),
|
|
||||||
THROUGHPUT_TRACKER
|
THROUGHPUT_TRACKER
|
||||||
.packets_per_second
|
.packets_per_second.get_up(),
|
||||||
.1
|
|
||||||
.load(std::sync::atomic::Ordering::Relaxed),
|
|
||||||
);
|
);
|
||||||
let bits_per_second = THROUGHPUT_TRACKER.bits_per_second();
|
let bits_per_second = THROUGHPUT_TRACKER.bits_per_second();
|
||||||
let shaped_bits_per_second = THROUGHPUT_TRACKER.shaped_bits_per_second();
|
let shaped_bits_per_second = THROUGHPUT_TRACKER.shaped_bits_per_second();
|
||||||
|
@ -12,8 +12,8 @@ pub struct ThroughputTracker {
|
|||||||
pub(crate) cycle: AtomicU64,
|
pub(crate) cycle: AtomicU64,
|
||||||
pub(crate) raw_data: DashMap<XdpIpAddress, ThroughputEntry>,
|
pub(crate) raw_data: DashMap<XdpIpAddress, ThroughputEntry>,
|
||||||
pub(crate) bytes_per_second: AtomicDownUp,
|
pub(crate) bytes_per_second: AtomicDownUp,
|
||||||
pub(crate) packets_per_second: (AtomicU64, AtomicU64),
|
pub(crate) packets_per_second: AtomicDownUp,
|
||||||
pub(crate) shaped_bytes_per_second: (AtomicU64, AtomicU64),
|
pub(crate) shaped_bytes_per_second: AtomicDownUp,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl ThroughputTracker {
|
impl ThroughputTracker {
|
||||||
@ -25,8 +25,8 @@ impl ThroughputTracker {
|
|||||||
cycle: AtomicU64::new(RETIRE_AFTER_SECONDS),
|
cycle: AtomicU64::new(RETIRE_AFTER_SECONDS),
|
||||||
raw_data: DashMap::with_capacity(lqos_sys::max_tracked_ips()),
|
raw_data: DashMap::with_capacity(lqos_sys::max_tracked_ips()),
|
||||||
bytes_per_second: AtomicDownUp::zeroed(),
|
bytes_per_second: AtomicDownUp::zeroed(),
|
||||||
packets_per_second: (AtomicU64::new(0), AtomicU64::new(0)),
|
packets_per_second: AtomicDownUp::zeroed(),
|
||||||
shaped_bytes_per_second: (AtomicU64::new(0), AtomicU64::new(0)),
|
shaped_bytes_per_second: AtomicDownUp::zeroed(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -353,8 +353,8 @@ impl ThroughputTracker {
|
|||||||
pub(crate) fn update_totals(&self) {
|
pub(crate) fn update_totals(&self) {
|
||||||
let current_cycle = self.cycle.load(std::sync::atomic::Ordering::Relaxed);
|
let current_cycle = self.cycle.load(std::sync::atomic::Ordering::Relaxed);
|
||||||
self.bytes_per_second.set_to_zero();
|
self.bytes_per_second.set_to_zero();
|
||||||
Self::set_atomic_tuple_to_zero(&self.packets_per_second);
|
self.packets_per_second.set_to_zero();
|
||||||
Self::set_atomic_tuple_to_zero(&self.shaped_bytes_per_second);
|
self.shaped_bytes_per_second.set_to_zero();
|
||||||
self
|
self
|
||||||
.raw_data
|
.raw_data
|
||||||
.iter()
|
.iter()
|
||||||
@ -373,9 +373,9 @@ impl ThroughputTracker {
|
|||||||
})
|
})
|
||||||
.for_each(|(bytes_down, bytes_up, packets_down, packets_up, shaped)| {
|
.for_each(|(bytes_down, bytes_up, packets_down, packets_up, shaped)| {
|
||||||
self.bytes_per_second.checked_add_tuple((bytes_down, bytes_up));
|
self.bytes_per_second.checked_add_tuple((bytes_down, bytes_up));
|
||||||
Self::add_atomic_tuple(&self.packets_per_second, (packets_down, packets_up));
|
self.packets_per_second.checked_add_tuple((packets_down, packets_up));
|
||||||
if shaped {
|
if shaped {
|
||||||
Self::add_atomic_tuple(&self.shaped_bytes_per_second, (bytes_down, bytes_up));
|
self.shaped_bytes_per_second.checked_add_tuple((bytes_down, bytes_up));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -406,13 +406,16 @@ impl ThroughputTracker {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub(crate) fn shaped_bits_per_second(&self) -> (u64, u64) {
|
pub(crate) fn shaped_bits_per_second(&self) -> (u64, u64) {
|
||||||
(self.shaped_bytes_per_second.0.load(std::sync::atomic::Ordering::Relaxed) * 8, self.shaped_bytes_per_second.1.load(std::sync::atomic::Ordering::Relaxed) * 8)
|
(
|
||||||
|
self.shaped_bytes_per_second.get_down() * 8,
|
||||||
|
self.shaped_bytes_per_second.get_up() * 8
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub(crate) fn packets_per_second(&self) -> (u64, u64) {
|
pub(crate) fn packets_per_second(&self) -> (u64, u64) {
|
||||||
(
|
(
|
||||||
self.packets_per_second.0.load(std::sync::atomic::Ordering::Relaxed),
|
self.packets_per_second.get_down(),
|
||||||
self.packets_per_second.1.load(std::sync::atomic::Ordering::Relaxed),
|
self.packets_per_second.get_up(),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user