Last updated: 2026-06-12
Inference Runtime
Umq
AMDGPU user-mode queue (T2) availability and create/free smoke gate.
AMDGPU uses UMQ for direct submission on Linux kernels that expose the AMDGPU user queue ABI. The preflight is intentionally cheap, while the smoke gate exercises the actual GEM/VA/USERQ_CREATE/USERQ_FREE path required before lowering decode packets onto T2.
17 exports shown
constant
min_linux_major
pub const min_linux_major: u32 = 6 Lowest Linux major version that exposes the AMDGPU user-queue ABI used by T2.
constant
min_linux_minor
pub const min_linux_minor: u32 = 16 Lowest Linux minor version paired with `min_linux_major` for UMQ admission.
constant
default_render_node
pub const default_render_node = "/dev/dri/renderD128" Default render node opened when no caller-supplied path is provided.
constant
user_queue_param_path
pub const user_queue_param_path = "/sys/module/amdgpu/parameters/user_queue" Sysfs path exposing the `amdgpu.user_queue` module parameter that gates UMQ.
enum
ProbeStatus
pub const ProbeStatus = enum Outcome of the cheap UMQ preflight check; ordered from success to specific failure modes so callers can report actionable diagnostics.
struct
KernelVersion
pub const KernelVersion = struct Parsed Linux kernel release triple used to compare against `min_linux_*`.
struct
ProbeResult
pub const ProbeResult = struct Aggregate output of `probePath` carrying both the verdict and the evidence (kernel version, render node tried, user-queue mode value) used to reach it.
Methods
1method
ProbeResult.preflightOk
pub fn preflightOk(self: ProbeResult) bool Whether the preflight succeeded and the host is eligible for T2 UMQ.
enum
SmokeStatus
pub const SmokeStatus = enum Outcome of the full create/free smoke gate that exercises the real GEM/VA/USERQ ioctl path required before T2 lowering can run.
struct
SmokeResult
pub const SmokeResult = struct Aggregate output of the UMQ create/free smoke test.
Carries the verdict, the queue id returned by `USERQ_CREATE` when one was obtained, the upstream errno on ioctl failures, and the firmware-reported metadata (queue slots and EOP buffer requirements) needed to size resources on subsequent runs.
Methods
1method
SmokeResult.ok
pub fn ok(self: SmokeResult) bool True when the smoke gate reached `USERQ_FREE` cleanly.
function
probeDefault
pub fn probeDefault() ProbeResult Run the cheap UMQ preflight against the default render node.
function
admissionProbeDefault
pub fn admissionProbeDefault() bool One-shot admission helper combining the preflight and the `kmd.queryComputeUserq` capability query.
`available` compute user-queue capability.
function
createFreeSmokeDefault
pub fn createFreeSmokeDefault() SmokeResult Run the full create/free smoke gate against the default render node.
function
createFreeSmokePath
pub fn createFreeSmokePath(render_node: []const u8) SmokeResult Run the full create/free smoke gate against an explicit render node path.
Performs preflight, queries the compute user-queue capability, allocates the GEM buffers required by `USERQ_CREATE`, maps their VAs, creates a compute queue, and finally frees it.
function
probePath
pub fn probePath(render_node: []const u8) ProbeResult Cheap preflight that walks the OS, kernel-version, render-node, and `user_queue` module-parameter checks without issuing any ioctls.
check, or `preflight_ok` when every check passed.
function
kernelSupportsUmq
pub fn kernelSupportsUmq(version: KernelVersion) bool Whether the parsed kernel version meets the minimum required for UMQ.
function
parseKernelRelease
pub fn parseKernelRelease(release: []const u8) ?KernelVersion Parse a `uname -r` style release string into a `KernelVersion`.
Distro suffixes and `-rc` tags after the numeric components are tolerated; the patch component defaults to 0 when absent.
function
userQueueModeEnablesUmq
pub fn userQueueModeEnablesUmq(mode: i32) bool Whether the `amdgpu.user_queue` module-parameter value enables UMQ admission.