pub struct LeaseGenLine {
pub lease_generation: AtomicU64,
/* private fields */
}Expand description
Second header line: the drainer-lease GENERATION, alone on its own cache line. Bumped only on lease claim / takeover / release and on epoch ticks - all rare events - so a merge drainer’s per-pop lease verification is one load of a line that is NEVER written in steady state (an L1 hit with zero coherence traffic), instead of loads on the first header line that every SharedCounter push fetch_adds. Measured on the Zen3 KVM guest: per-pop loads of that stamp-hot line cost a cache-to-cache transfer each (~130 ns) and tripled the merge rungs.
Fields§
§lease_generation: AtomicU64Auto Trait Implementations§
impl !Freeze for LeaseGenLine
impl RefUnwindSafe for LeaseGenLine
impl Send for LeaseGenLine
impl Sync for LeaseGenLine
impl Unpin for LeaseGenLine
impl UnsafeUnpin for LeaseGenLine
impl UnwindSafe for LeaseGenLine
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
Mutably borrows from an owned value. Read more