pub struct NumaNode {
pub llcs: u32,
pub memory_mib: u32,
pub latency_ns: Option<u32>,
pub bandwidth_mbs: Option<u32>,
pub mem_side_cache: Option<MemSideCache>,
}Expand description
Re-exports of topology types for use in KtstrTestEntry statics
generated by the #[ktstr_test] macro.
Per-NUMA-node configuration.
llcs = 0 models a CXL memory-only node: the node has RAM but no
CPUs or LLCs. Such nodes appear in the SRAT memory affinity table
and SLIT distance matrix but contribute no CPU affinity entries.
Fields§
§llcs: u32Number of LLCs owned by this node. Zero means memory-only (CXL).
memory_mib: u32Memory attached to this node in MiB.
latency_ns: Option<u32>HMAT access latency in nanoseconds. None uses the default
(100ns for CPU-bearing, 300ns for memory-only). Emitted as
an SLLBI access_latency entry in the HMAT table by
write_hmat in x86_64/acpi/mod.rs. x86_64 only — aarch64 does
not expose an HMAT-equivalent to the guest.
bandwidth_mbs: Option<u32>HMAT read bandwidth in MB/s. None uses the default
(51200 MB/s for CPU-bearing, 20480 MB/s for memory-only).
Emitted as an SLLBI access_bandwidth entry in the HMAT table
by write_hmat in x86_64/acpi/mod.rs. x86_64 only.
mem_side_cache: Option<MemSideCache>HMAT Type 2 memory-side cache. None means no cache entry
is emitted for this node. x86_64 only.
Implementations§
Source§impl NumaNode
impl NumaNode
Sourcepub const fn with_hmat(
llcs: u32,
memory_mib: u32,
latency_ns: u32,
bandwidth_mbs: u32,
) -> Self
pub const fn with_hmat( llcs: u32, memory_mib: u32, latency_ns: u32, bandwidth_mbs: u32, ) -> Self
Const constructor with HMAT attributes.
Sourcepub const fn cache(self, cache: MemSideCache) -> Self
pub const fn cache(self, cache: MemSideCache) -> Self
Attach a memory-side cache descriptor.
Sourcepub const fn is_memory_only(&self) -> bool
pub const fn is_memory_only(&self) -> bool
Whether this is a memory-only node (CXL: has RAM but no CPUs).
Trait Implementations§
impl Copy for NumaNode
impl Eq for NumaNode
impl StructuralPartialEq for NumaNode
Auto Trait Implementations§
impl Freeze for NumaNode
impl RefUnwindSafe for NumaNode
impl Send for NumaNode
impl Sync for NumaNode
impl Unpin for NumaNode
impl UnwindSafe for NumaNode
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,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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