the effect of yield_now() was just less competition in find_victim, prove by replacing it with busy loop

This commit is contained in:
Christian Schwarz
2023-10-04 15:41:05 +00:00
parent 49bf66a467
commit 6124ad694a

View File

@@ -892,7 +892,13 @@ impl PageCache {
self.next_evict_slot.fetch_add(1, Ordering::Relaxed) % self.slots.len();
match (last_slot_idx, next_idx) {
(Some(x), y) if x > y => {
tokio::task::yield_now().await;
#[inline(never)]
fn dont_compete_with_other_find_victim_for_a_while() {
for _ in 0..1_000_000 {
std::hint::spin_loop();
}
}
dont_compete_with_other_find_victim_for_a_while();
}
(None | Some(_), _) => {}
}