mirror of
https://github.com/cloud-hypervisor/cloud-hypervisor.git
synced 2024-10-03 20:15:45 +00:00
virtio-devices: block: Fix the latency counter for max read/write
See: #5712 Signed-off-by: Bo Chen <chen.bo@intel.com>
This commit is contained in:
parent
b76d0e8b50
commit
9c994f882a
@ -283,6 +283,8 @@ impl BlockEpollHandler {
|
|||||||
let latency = request.start.elapsed().as_micros() as u64;
|
let latency = request.start.elapsed().as_micros() as u64;
|
||||||
let read_ops_last = self.counters.read_ops.load(Ordering::Relaxed);
|
let read_ops_last = self.counters.read_ops.load(Ordering::Relaxed);
|
||||||
let write_ops_last = self.counters.write_ops.load(Ordering::Relaxed);
|
let write_ops_last = self.counters.write_ops.load(Ordering::Relaxed);
|
||||||
|
let read_max = self.counters.read_latency_max.load(Ordering::Relaxed);
|
||||||
|
let write_max = self.counters.write_latency_max.load(Ordering::Relaxed);
|
||||||
let mut read_avg = self.counters.read_latency_avg.load(Ordering::Relaxed);
|
let mut read_avg = self.counters.read_latency_avg.load(Ordering::Relaxed);
|
||||||
let mut write_avg = self.counters.write_latency_avg.load(Ordering::Relaxed);
|
let mut write_avg = self.counters.write_latency_avg.load(Ordering::Relaxed);
|
||||||
let (status, len) = if result >= 0 {
|
let (status, len) = if result >= 0 {
|
||||||
@ -297,9 +299,7 @@ impl BlockEpollHandler {
|
|||||||
.read_latency_min
|
.read_latency_min
|
||||||
.store(latency, Ordering::Relaxed);
|
.store(latency, Ordering::Relaxed);
|
||||||
}
|
}
|
||||||
if latency > self.counters.read_latency_max.load(Ordering::Relaxed)
|
if latency > read_max || read_max == u64::MAX {
|
||||||
|| latency == u64::MAX
|
|
||||||
{
|
|
||||||
self.counters
|
self.counters
|
||||||
.read_latency_max
|
.read_latency_max
|
||||||
.store(latency, Ordering::Relaxed);
|
.store(latency, Ordering::Relaxed);
|
||||||
@ -331,9 +331,7 @@ impl BlockEpollHandler {
|
|||||||
.write_latency_min
|
.write_latency_min
|
||||||
.store(latency, Ordering::Relaxed);
|
.store(latency, Ordering::Relaxed);
|
||||||
}
|
}
|
||||||
if latency > self.counters.write_latency_max.load(Ordering::Relaxed)
|
if latency > write_max || write_max == u64::MAX {
|
||||||
|| latency == u64::MAX
|
|
||||||
{
|
|
||||||
self.counters
|
self.counters
|
||||||
.write_latency_max
|
.write_latency_max
|
||||||
.store(latency, Ordering::Relaxed);
|
.store(latency, Ordering::Relaxed);
|
||||||
|
Loading…
Reference in New Issue
Block a user