RFR: 8250597: G1: Improve inlining around trim_queue
thomas.schatzl at oracle.com
Thu Aug 6 13:44:11 UTC 2020
On 05.08.20 02:26, Kim Barrett wrote:
> Please review this change to G1ParScanThreadState to improve inlining
> management. This change doesn't seem to make any measurable performance
> difference by itself. However, without this, other changes being developed
> may change gcc's inlining decisions in ways that often hurt performance,
> mostly by heuristically cutting off inlining.
> The primary inlining boundary is changed to trim_queue_to_threshold, which
> is the main driver loop for task processing. This is instead of having the
> boundary at copy_to_survivor_space, which is called per-task.
> mach5 tier1-5
> various performance tests, finding no significant changes.
looks good, some suggestions:
- G1ParScanThreadState::do_copy_to_survivor_space: the first assert is
indented by an extra space.
- maybe the two asserts in G1ParScanThreadState::trim_queue_partially()
/ G1ParScanThreadState::trim_queue could be moved to
trim_queue_to_threshold(), checking that the overflow queue is empty,
and the size is <= the passed threshold.
More information about the hotspot-gc-dev