You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Let `MarkSweepSpace` use the `BlockPageResource` instead of the raw
`FreeListPageResource`. This solves a problem where multiple GC workers
contend for the mutex `FreeListPageResource::sync` when calling
`FreeListPageResource::release_pages` concurrently during the `Release`
stage.
We flush the `BlockPageResource` in `MarkSweepSpace::end_of_gc`. To
monitor the performance, we added a pair of USDT trace points before and
after calling `Plan.end_of_gc`. We also count the invocation of
`end_of_gc` into the GC time.
We changed `BlockQueue` so that it uses `MaybeUninit` to hold
uninitialized elements instead of relying on
`B::from_aligned_address(Address::ZERO)` because the `Block` type used
by `MarkSweepSpace` is based on `NonZeroUsize`, and cannot be zero.
Fixes: #1145
0 commit comments