Skip to main content

MadviseAdvice

Enum MadviseAdvice 

Source
#[repr(i32)]
pub enum MadviseAdvice {
Show 23 variants Normal = 0, Random = 1, Sequential = 2, WillNeed = 3, DontNeed = 4, Free = 8, Remove = 9, DontFork = 10, DoFork = 11, Mergeable = 12, Unmergeable = 13, HugePage = 14, NoHugePage = 15, DontDump = 16, DoDump = 17, WipeOnFork = 18, KeepOnFork = 19, Cold = 20, PageOut = 21, PopulateRead = 22, PopulateWrite = 23, DontNeedLocked = 24, Collapse = 25,
}
Expand description

Conseil kernel sur le pattern d’accès mémoire pour madvise(2).

Ces conseils sont de simples hints : le kernel peut les ignorer. Les valeurs numériques correspondent aux constantes MADV_* de Linux.

Variants§

§

Normal = 0

Comportement normal (supprime les conseils précédents).

§

Random = 1

Accès aléatoires : désactive le préfetch.

§

Sequential = 2

Accès séquentiels : active un préfetch agressif.

§

WillNeed = 3

Les pages seront bientôt accédées (préfetch immédiat).

§

DontNeed = 4

Les pages ne sont plus nécessaires ; libère la mémoire physique sans désallouer le mapping (les pages sont remises à zéro au prochain accès).

§

Free = 8

Libère les pages propres sans désallouer (Linux 4.5+).

§

Remove = 9

Supprime les pages et l’espace de backing (seulement pour MAP_SHARED sur des fichiers supportant FALLOC_FL_PUNCH_HOLE).

§

DontFork = 10

Les pages ne doivent pas être héritées par les processus fils.

§

DoFork = 11

Annule DONTFORK.

§

Mergeable = 12

Active le KSM (Kernel Samepage Merging) pour ces pages.

§

Unmergeable = 13

Désactive le KSM pour ces pages.

§

HugePage = 14

Active les huge pages transparentes.

§

NoHugePage = 15

Désactive les huge pages transparentes.

§

DontDump = 16

Exclut ces pages des core dumps.

§

DoDump = 17

Réintègre ces pages dans les core dumps.

§

WipeOnFork = 18

Efface les pages lors d’un fork (Linux 4.14+).

§

KeepOnFork = 19

Conserve les pages lors d’un fork (Linux 4.14+).

§

Cold = 20

Indique que les pages sont “froides” (Linux 5.4+).

§

PageOut = 21

Pousse les pages vers le swap (Linux 5.4+).

§

PopulateRead = 22

Pré-fault les pages en lecture (Linux 5.14+).

§

PopulateWrite = 23

Pré-fault les pages en écriture (Linux 5.14+).

§

DontNeedLocked = 24

Libère les pages verrouillées (Linux 5.18+).

§

Collapse = 25

Compacte les huge pages transparentes (Linux 6.1+).

Trait Implementations§

Source§

impl Clone for MadviseAdvice

Source§

fn clone(&self) -> MadviseAdvice

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for MadviseAdvice

Source§

impl Debug for MadviseAdvice

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for MadviseAdvice

Source§

impl Hash for MadviseAdvice

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

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

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for MadviseAdvice

Source§

fn eq(&self, other: &MadviseAdvice) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for MadviseAdvice

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.