pub struct StatsSnapshot {
pub submitted: u64,
pub delivered: u64,
pub orphan_reclaimed: u64,
pub in_flight: u64,
pub cancel_succeeded: u64,
pub cancel_not_found: u64,
pub cancel_already: u64,
pub cq_overflow: u64,
pub submit_errors: u64,
}Expand description
Point-in-time copy of the driver counters.
Fields§
§submitted: u64Read ops handed to the kernel.
delivered: u64CQEs whose result was received by a live caller.
orphan_reclaimed: u64CQEs whose caller had dropped the future: the buffer stayed in the pending table the whole time and was reclaimed here, at the CQE.
in_flight: u64Ops submitted but not yet completed. The kernel may still write into their buffers.
cancel_succeeded: u64ASYNC_CANCEL CQEs that reported the target op was canceled (res == 0).
cancel_not_found: u64ASYNC_CANCEL CQEs that reported the target was not found (-ENOENT): the op had already completed.
cancel_already: u64ASYNC_CANCEL CQEs that reported the target was already executing and could not be interrupted (-EALREADY). A rising count is the hung-disk signal that makes drain-to-zero non-terminating (C4, rustfs/backlog#1055).
cq_overflow: u64Kernel CQ-ring overflow counter. With NODROP (asserted at probe) overflow
CQEs are buffered in the kernel overflow list and flushed on the next
enter, NOT lost — so a non-zero value is a backpressure warning, not fatal
loss (C5, rustfs/backlog#1056, #1167). In-flight is capped at entries
and cancels are deduped, keeping completions <= 2*entries, so it should
stay 0 in practice.
submit_errors: u64ring.submit() calls that returned a non-transient error. A rising count
means io_uring_enter is persistently failing (e.g. a seccomp/LSM policy
applied after startup); the driver shuts the shard down after a bounded
run of consecutive failures so callers fall back instead of stalling
(rustfs/backlog#1162).
Trait Implementations§
Source§impl Clone for StatsSnapshot
impl Clone for StatsSnapshot
Source§fn clone(&self) -> StatsSnapshot
fn clone(&self) -> StatsSnapshot
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more