RFR: 8333925: Shenandoah: Heuristics should have an option to ignore abbreviated cycles

Y. Srinivas Ramakrishna ysr at openjdk.org
Tue Jun 11 20:03:16 UTC 2024


On Mon, 10 Jun 2024 22:34:00 GMT, William Kemper <wkemper at openjdk.org> wrote:

> After concurrent marking is complete, Shenandoah will skip the evacuation phase if a sufficient amount of garbage is found in regions that contain _no live objects_. These abbreviated cycles are much shorter than a cycle that performs evacuation and update references and tend to lower the average cycle time used by the heuristic to predict cycle times. This may cause the heuristic to wait too long to initiate a cycle and may lead to degenerated cycles. This change has the heuristic ignore abbreviated cycle times by default, with an option to have the heuristic count them as it does now.

LGTM.

Any performance numbers or improvements to share?

src/hotspot/share/gc/shenandoah/heuristics/shenandoahHeuristics.cpp line 3:

> 1: /*
> 2:  * Copyright (c) 2018, 2020, Red Hat, Inc. All rights reserved.
> 3:  * Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.

Remove?

src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp line 152:

> 150:           range(0,1.0)                                                      \
> 151:                                                                             \
> 152:   product(bool, ShenandoahAdaptiveIgnoreShortCycles, true, EXPERIMENTAL,    \

Abbreviated instead of Short,for consistency with use of terms in code?

-------------

Marked as reviewed by ysr (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/19640#pullrequestreview-2111327384
PR Review Comment: https://git.openjdk.org/jdk/pull/19640#discussion_r1635405682
PR Review Comment: https://git.openjdk.org/jdk/pull/19640#discussion_r1635411480


More information about the hotspot-gc-dev mailing list