pub struct NvmeGpuIngestTelemetry {
pub submitted_bytes: u64,
pub completed_bytes: u64,
pub submitted_reads: u64,
pub completed_reads: u64,
pub registered_mapped_read_submissions: u64,
pub gpudirect_nvme_submissions: u64,
pub cpu_bounce_bytes: u64,
pub failed_completions: u64,
}Expand description
Runtime telemetry for NVMe/file ingest into GPU-visible memory.
cpu_bounce_bytes is intentionally part of the public snapshot. The
NvmeGpuIngestDriver never targets an ordinary userspace bounce buffer, so
this counter must remain zero across both registered mapped reads and native
GPUDirect NVMe passthrough.
Fields§
§submitted_bytes: u64Bytes submitted to io_uring reads.
completed_bytes: u64Bytes completed and published into the megakernel IO queue.
submitted_reads: u64Total read submissions accepted by io_uring.
completed_reads: u64Completed reads published into the megakernel IO queue.
registered_mapped_read_submissions: u64Submissions using IORING_OP_READ_FIXED into registered GPU-visible memory.
gpudirect_nvme_submissions: u64Submissions using native IORING_OP_URING_CMD NVMe passthrough into BAR1 memory.
cpu_bounce_bytes: u64Bytes copied through ordinary userspace bounce buffers.
failed_completions: u64CQEs that completed with an error or without matching pending metadata.
Implementations§
Source§impl NvmeGpuIngestTelemetry
impl NvmeGpuIngestTelemetry
Sourcepub fn inflight_reads(self) -> u64
pub fn inflight_reads(self) -> u64
Inflight read count derived from accepted submissions and terminal CQEs.
Sourcepub fn path_submissions(self, path: NativeReadPath) -> u64
pub fn path_submissions(self, path: NativeReadPath) -> u64
Read submissions recorded for a specific native ingest path.
Sourcepub fn validate_completed_zero_copy(
self,
path: NativeReadPath,
) -> Result<(), PipelineError>
pub fn validate_completed_zero_copy( self, path: NativeReadPath, ) -> Result<(), PipelineError>
Validate that the snapshot describes a completed zero-copy ingest run for path.
This method intentionally does not validate a benchmark’s expected byte count; it validates the runtime invariant that every submitted read on the selected path completed without CPU bounce buffers or path mixing.
§Errors
Returns PipelineError::Backend with an actionable fix when the
snapshot reports a CPU bounce copy, failed/inflight reads, incomplete
byte accounting, incomplete read accounting, or submissions on the
wrong native ingest path.
Trait Implementations§
Source§impl Clone for NvmeGpuIngestTelemetry
impl Clone for NvmeGpuIngestTelemetry
Source§fn clone(&self) -> NvmeGpuIngestTelemetry
fn clone(&self) -> NvmeGpuIngestTelemetry
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for NvmeGpuIngestTelemetry
Source§impl Debug for NvmeGpuIngestTelemetry
impl Debug for NvmeGpuIngestTelemetry
Source§impl Default for NvmeGpuIngestTelemetry
impl Default for NvmeGpuIngestTelemetry
Source§fn default() -> NvmeGpuIngestTelemetry
fn default() -> NvmeGpuIngestTelemetry
impl Eq for NvmeGpuIngestTelemetry
Source§impl PartialEq for NvmeGpuIngestTelemetry
impl PartialEq for NvmeGpuIngestTelemetry
Source§fn eq(&self, other: &NvmeGpuIngestTelemetry) -> bool
fn eq(&self, other: &NvmeGpuIngestTelemetry) -> bool
self and other values to be equal, and is used by ==.impl StructuralPartialEq for NvmeGpuIngestTelemetry
Auto Trait Implementations§
impl Freeze for NvmeGpuIngestTelemetry
impl RefUnwindSafe for NvmeGpuIngestTelemetry
impl Send for NvmeGpuIngestTelemetry
impl Sync for NvmeGpuIngestTelemetry
impl Unpin for NvmeGpuIngestTelemetry
impl UnsafeUnpin for NvmeGpuIngestTelemetry
impl UnwindSafe for NvmeGpuIngestTelemetry
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.