pub struct CompactionStats {Show 14 fields
pub attempts: usize,
pub successes: usize,
pub last_order: Option<u8>,
pub last_migratetype: Option<Migratetype>,
pub last_zone: Option<ZoneType>,
pub last_pressure: Option<ZonePressure>,
pub last_fragmentation_score: usize,
pub last_requested_pages: usize,
pub last_available_pages: usize,
pub last_usable_pages: usize,
pub last_cached_pages: usize,
pub last_drained_pages: usize,
pub last_pageblock_count: usize,
pub last_matching_pageblocks: usize,
}Expand description
Snapshot of the last fragmentation-driven compaction assist attempt.
The fields are intentionally plain data so crash dumps and shell commands can read them without locking or heap allocation.
Fields§
§attempts: usizeNumber of targeted compaction assists attempted after an allocation miss.
successes: usizeNumber of attempts that yielded a successful retry.
last_order: Option<u8>Last requested buddy order that triggered a targeted drain.
last_migratetype: Option<Migratetype>Mobility class of the last assisted allocation.
last_zone: Option<ZoneType>Zone selected as the preferred compaction target.
last_pressure: Option<ZonePressure>Pressure state observed on that zone before draining caches.
last_fragmentation_score: usizeFragmentation score that justified the assist path.
last_requested_pages: usizePages requested by the original allocation.
last_available_pages: usizeEffective free pages left above reserves in the chosen zone.
last_usable_pages: usizeFree pages already available at or above the requested order.
last_cached_pages: usizeOrder-0 pages parked in local caches for the chosen zone.
last_drained_pages: usizePages actually drained from local caches during the last attempt.
last_pageblock_count: usizeTotal pageblocks tracked in the selected zone.
last_matching_pageblocks: usizePageblocks already tagged with the requested migratetype.
Implementations§
Trait Implementations§
Source§impl Clone for CompactionStats
impl Clone for CompactionStats
Source§fn clone(&self) -> CompactionStats
fn clone(&self) -> CompactionStats
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for CompactionStats
impl Debug for CompactionStats
impl Copy for CompactionStats
Auto Trait Implementations§
impl Freeze for CompactionStats
impl RefUnwindSafe for CompactionStats
impl Send for CompactionStats
impl Sync for CompactionStats
impl Unpin for CompactionStats
impl UnsafeUnpin for CompactionStats
impl UnwindSafe for CompactionStats
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,
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