Skip to content

Changes

Summary

  1. Reset TLH sizing at first increment for CS (commit: 9d43516) (details)
Commit 9d435160b38e9e595673b62e86615bf62a799e5a by Aleksandar Micic
Reset TLH sizing at first increment for CS

We reduce current refresh size at GC points, so that slow allocating
threads have a chance to reduce their current refresh size.

It's done toward the end of a GC cycle, which means that for Concurrent
Scavegner it's done at the end of 2nd GC increment.

However, it's slighty better to do it at the end of 1st increment since
it will cuase TLH to be slighly smaller during concurrent phase of the
cycle.

During the concurrent phase there are other activities like GC
background threads and read-barriers that effectively slow down the
allocation rate of mutator threads, so there is less contention among
them and less need for larger TLHs.

Also, since allocate space is much smaller during concurrent phase of
GC, smaller TLHs will lead to smaller discards for the last TLH refresh,
which leads to more tilting and less frequent GC cycles.

Signed-off-by: Aleksandar Micic <Aleksandar_Micic@ca.ibm.com>
(commit: 9d43516)
The file was modified gc/base/standard/Scavenger.cpp (diff)