Skip to main content

Module uring

Module uring 

Source
Expand description

Linux io_uring integration. Compiled out on macOS / Windows. Linux io_uring scaffolding for NVMe → GPU-visible memory streaming. All items here are gated on cfg(target_os = "linux") and compiled out on every other platform.

Public surface:

  • IoUringState - raw syscall + mmap wrapper for the SQ/CQ rings.
  • GpuMappedBuffer - typed wrapper around a GPU-visible memory region: either a registered host-visible mapping or a BAR1 peer-memory allocation.
  • AsyncUringStream - the submission glue: pushes reads into the SQ and advances an atomic tail pointer the megakernel observes.
  • NvmeGpuIngestDriver - publishes completed slots into the megakernel io_queue; new_gpudirect requires the native NVMe → BAR1 path.

Re-exports§

pub use driver::CompletedIngest;
pub use driver::NativeReadPath;
pub use driver::NvmeGpuIngestDriver;
pub use driver::NvmeGpuIngestTelemetry;
pub use gpudirect::encode_nvme_read_sqe;
pub use gpudirect::GpuDirectCapability;
pub use gpudirect::NVME_CMD_READ;
pub use io_loop::MegakernelIoLoop;
pub use io_loop::RegisteredIoDestination;
pub use pump::UringMegakernelPump;
pub use ring::IoUringState;
pub use stream::AsyncUringStream;
pub use stream::GpuMappedBuffer;
pub use stream::Iovec;

Modules§

driver
End-to-end ingest driver: file/NVMe -> io_uring -> mapped slot -> io_queue.
gpudirect
GPUDirect Storage capability probe + passthrough helper.
io_loop
Autonomous IO loop for persistent megakernel.
pump
File-read → megakernel ring-slot pump. Linux-only.
ring
Raw io_uring orchestrator and syscall wrappers.
stream
AsyncUringStream - drives io_uring reads into GPU-visible memory and advances the megakernel tail pointer on each completion.