[][src]Struct dpdk_unix::SysPath

pub struct SysPath(_);

Represents /sys.

Methods

impl SysPath[src]

pub fn disable_transparent_huge_pages(
    &self
) -> Result<(), DisableTransparentHugePagesError>
[src]

Disable transparent huge pages.

pub fn is_a_numa_machine(&self) -> bool[src]

Is this a NUMA-based machine?

pub fn is_a_numa_node(&self, numa_node: u8) -> bool[src]

Is this a NUMA node (assuming we're on a NUMA-based machine)?

Note that this might be a fake NUMA node, ie one lacking any hyper threads.

pub fn hyper_thread_path(
    &self,
    hyper_thread: HyperThread,
    file_name: &str
) -> PathBuf
[src]

A hyper thread file.

pub fn numa_node_path(&self, numa_node: u8, file_name: &str) -> PathBuf[src]

A NUMA node file.

pub fn pci_device_path(
    &self,
    pci_device: (u32, u8, u8, u8),
    file_name: &str
) -> PathBuf
[src]

A PCI device file.

pub fn hyper_threads_path(&self, file_name: &str) -> PathBuf[src]

A path about all hyper threads.

pub fn numa_nodes_path(&self, file_name: &str) -> PathBuf[src]

A path about all NUMA nodes.

pub fn pci_devices_path(&self, file_name: &str) -> PathBuf[src]

A path about all PCI devices.

pub fn rescan_all_pci_buses_and_devices(&self) -> Result<()>[src]

Rescans all PCI buses and devices.

Errors are swallowed.

pub fn change_transparent_huge_pages_usage(
    &self,
    transparent_huge_page_regular_memory_choice: TransparentHugePageRegularMemoryChoice,
    transparent_huge_page_shared_memory_choice: TransparentHugePageSharedMemoryChoice,
    use_zero_page: bool
) -> Result<()>
[src]

Changes Transparent Huge Pages (THP) settings.

The value of the transparent_huge_page_regular_memory_choice can also be specified in the Linux kernel command line parameters as one of "transparent_hugepage=never", "transparent_hugepage=always" or "transparent_hugepage=madvise".

pub fn change_transparent_huge_pages_defragmentation(
    &self,
    transparent_huge_page_defragmentation_choice: TransparentHugePageDefragmentationChoice,
    pages_to_scan: u16,
    scan_sleep_in_milliseconds: usize,
    allocation_sleep_in_milliseconds: usize,
    how_many_extra_small_pages_not_already_mapped_can_be_allocated_when_collapsing_small_pages: u16,
    how_many_extra_small_pages_not_already_mapped_can_be_swapped_when_collapsing_small_pages: u16
) -> Result<()>
[src]

Changes defragmentation using the Kernel-internal khugepaged daemon thread for Transparent Huge Pages (THP).

  • The kernel default for pages_to_scan is 4096.
  • The kernel default for scan_sleep_in_milliseconds is 10_000.
  • The kernel default for alloc_sleep_millisecs is 60_000.
  • The kernel default for how_many_extra_small_pages_not_already_mapped_can_be_allocated_when_collapsing_small_pages is 511. Also known as max_ptes_none. A higher value leads to use additional memory for programs. A lower value produces less gains in performance. The value itself has very little effect on CPU usage.
  • The kernel default for how_many_extra_small_pages_not_already_mapped_can_be_swapped_when_collapsing_small_pages is 64. Also known as max_ptes_swap. A higher value can cause excessive swap IO and waste memory. A lower value can prevent THPs from being collapsed, resulting in fewer pages being collapsed into THPs, and so lower memory access performance.

Trait Implementations

impl Eq for SysPath[src]

impl Clone for SysPath[src]

fn clone_from(&mut self, source: &Self)
1.0.0
[src]

Performs copy-assignment from source. Read more

impl PartialOrd<SysPath> for SysPath[src]

impl PartialEq<SysPath> for SysPath[src]

impl Default for SysPath[src]

impl Ord for SysPath[src]

fn max(self, other: Self) -> Self
1.21.0
[src]

Compares and returns the maximum of two values. Read more

fn min(self, other: Self) -> Self
1.21.0
[src]

Compares and returns the minimum of two values. Read more

impl Hash for SysPath[src]

fn hash_slice<H>(data: &[Self], state: &mut H) where
    H: Hasher
1.3.0
[src]

Feeds a slice of this type into the given [Hasher]. Read more

impl Debug for SysPath[src]

impl<'de> Deserialize<'de> for SysPath[src]

impl Serialize for SysPath[src]

Auto Trait Implementations

impl Send for SysPath

impl Sync for SysPath

Blanket Implementations

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

impl<T> From for T[src]

impl<T, U> TryFrom for T where
    U: Into<T>, 
[src]

type Error = !

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

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

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T> DeserializeOwned for T where
    T: Deserialize<'de>, 
[src]