Skip to content

Commit

Permalink
AcctIdx: avoid crazy #s on ms_per_age stat (solana-labs#20184)
Browse files Browse the repository at this point in the history
  • Loading branch information
jeffwashington committed Sep 27, 2021
1 parent 12a52b3 commit d8f98b3
Showing 1 changed file with 13 additions and 12 deletions.
25 changes: 13 additions & 12 deletions runtime/src/bucket_map_holder_stats.rs
Expand Up @@ -80,19 +80,20 @@ impl BucketMapHolderStats {
}

fn ms_per_age<T: IndexValue>(&self, storage: &BucketMapHolder<T>) -> u64 {
let elapsed_ms = self.get_elapsed_ms_and_reset();
let mut age_now = storage.current_age();
let last_age = self.last_age.swap(age_now, Ordering::Relaxed);
if last_age > age_now {
// age may have wrapped
age_now += u8::MAX;
}
let age_delta = age_now.saturating_sub(last_age) as u64;
if age_delta > 0 {
elapsed_ms / age_delta
} else {
0
if !storage.get_startup() {
let elapsed_ms = self.get_elapsed_ms_and_reset();
let mut age_now = storage.current_age();
let last_age = self.last_age.swap(age_now, Ordering::Relaxed);
if last_age > age_now {
// age may have wrapped
age_now += u8::MAX;
}
let age_delta = age_now.saturating_sub(last_age) as u64;
if age_delta > 0 {
return elapsed_ms / age_delta;
}
}
0 // avoid crazy numbers
}

pub fn remaining_until_next_interval(&self) -> u64 {
Expand Down

0 comments on commit d8f98b3

Please sign in to comment.