NumaNodeState

Struct NumaNodeState 

Source
#[repr(align(64))]
pub struct NumaNodeState { pub node_id: NumaNodeId, pub active_threads: AtomicUsize, pub affine_threads: AtomicUsize, pub local_allocations: AtomicU64, pub remote_allocations: AtomicU64, pub migrations_in: AtomicU64, pub migrations_out: AtomicU64, pub perf_stats: CacheLinePadded<NumaNodePerfStats>, }
Expand description

Per-NUMA node statistics and state.

Fields§

§node_id: NumaNodeId

NUMA node ID

§active_threads: AtomicUsize

Number of threads currently running on this node

§affine_threads: AtomicUsize

Number of threads with affinity to this node

§local_allocations: AtomicU64

Memory allocation statistics

§remote_allocations: AtomicU64§migrations_in: AtomicU64

Load balancing statistics

§migrations_out: AtomicU64§perf_stats: CacheLinePadded<NumaNodePerfStats>

Performance counters

Implementations§

Source§

impl NumaNodeState

Source

pub fn new(node_id: NumaNodeId) -> Self

Source

pub fn get_load(&self) -> f64

Get current load on this NUMA node.

Source

pub fn get_memory_locality(&self) -> f64

Get memory locality ratio.

Source

pub fn record_migration_in(&self)

Record a thread migration into this node.

Source

pub fn record_migration_out(&self)

Record a thread migration out of this node.

Source

pub fn record_local_allocation(&self, size: usize)

Record local memory allocation.

Source

pub fn record_remote_allocation(&self, size: usize)

Record remote memory allocation.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.