pub enum CpuPlacementError {
TopologyDiscovery {
requested: CpuPlacement,
backend: CpuBackendKind,
source: CpuTopologyError,
},
ManagedAffinityUnavailable {
requested: CpuPlacement,
backend: CpuBackendKind,
},
NumaDiscoveryUnavailable {
requested: CpuPlacement,
backend: CpuBackendKind,
},
UnknownNumaNode {
requested: CpuPlacement,
backend: CpuBackendKind,
node: NumaNodeId,
},
ExternalProviderAffinityUnmanaged {
requested: CpuPlacement,
backend: CpuBackendKind,
},
UnregisteredExternalPlacement {
requested: CpuPlacement,
},
EngineConstruction {
requested: CpuPlacement,
backend: CpuBackendKind,
source: CpuEngineConstructionError,
},
InternalState {
requested: CpuPlacement,
backend: CpuBackendKind,
message: &'static str,
},
}Expand description
Failure to resolve a CPU placement for the selected public provider kind.
§Examples
use tenferro_cpu::{CpuBackendKind, CpuPlacement, CpuPlacementError};
let error = CpuPlacementError::ExternalProviderAffinityUnmanaged {
requested: CpuPlacement::AllAllowed,
backend: CpuBackendKind::Blas,
};
assert!(error.to_string().contains("affinity"));Variants§
TopologyDiscovery
Process-visible topology discovery failed before placement resolution.
Fields
requested: CpuPlacementThe placement requested by the caller.
backend: CpuBackendKindThe selected public backend kind.
source: CpuTopologyErrorThe preserved topology failure category.
The current platform cannot construct verified pinned worker pools.
NUMA-node placement was requested but OS NUMA discovery was unavailable.
UnknownNumaNode
The requested OS NUMA node has no usable CPUs in this process.
Fields
requested: CpuPlacementThe placement requested by the caller.
backend: CpuBackendKindThe selected public backend kind.
node: NumaNodeIdThe unknown or process-unavailable OS node ID.
ExternalProviderAffinityUnmanaged
An external provider owns worker affinity, so explicit placement is unsafe.
Fields
requested: CpuPlacementThe explicit placement requested by the caller.
backend: CpuBackendKindThe selected public backend kind.
UnregisteredExternalPlacement
An externally managed coordinator has no domain for the explicit placement.
Fields
requested: CpuPlacementThe explicit registry-only placement request.
EngineConstruction
A pinned engine could not be built for an otherwise valid placement.
Fields
requested: CpuPlacementThe placement requested by the caller.
backend: CpuBackendKindThe selected public backend kind.
source: CpuEngineConstructionErrorTyped worker-pool construction or affinity failure.
InternalState
The placement state reached an impossible internal compatibility mode.
Fields
requested: CpuPlacementThe placement requested by the caller.
backend: CpuBackendKindThe selected public backend kind.
Trait Implementations§
Source§impl Debug for CpuPlacementError
impl Debug for CpuPlacementError
Source§impl Display for CpuPlacementError
impl Display for CpuPlacementError
Source§impl Error for CpuPlacementError
impl Error for CpuPlacementError
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
Auto Trait Implementations§
impl Freeze for CpuPlacementError
impl !RefUnwindSafe for CpuPlacementError
impl Send for CpuPlacementError
impl Sync for CpuPlacementError
impl Unpin for CpuPlacementError
impl UnsafeUnpin for CpuPlacementError
impl !UnwindSafe for CpuPlacementError
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> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more