RFR: 8242078: G1: Improve concurrent refinement analytics and logging
Thomas Schatzl
thomas.schatzl at oracle.com
Wed Apr 8 15:25:30 UTC 2020
Hi,
On 04.04.20 23:21, Kim Barrett wrote:
> Please review this change to improve the data collection and logging for
> concurrent refinement.
>
> Both concurrent refinement threads and refining mutator threads now use a
> common structure for collecting stats about refinement. This simplifies
> and improves the reporting and analytics based on that information.
>
> Changed logging to be in the pause-start recording stage, under the control
> of the (gc, refine, stats) tagset. Concurrent refinement statistics are no
> longer part of the RemsetSummary.
>
> In the gathering and reporting, made a nomenclature change from "logged"
> cards to "dirtied" cards. This was originally done in support of some
> experiments with deferred dirtying of logged cards, but I think it makes
> sense even in the absence of such deferral.
>
> As part of this change, moved the call to G1DirtyCardQueue::concatenate_logs
> earlier, so that other code (including the concurrent refinement stats
> recording code) doesn't need to deal with the pre-flushed state. Also
> report time spent specifically in this phase.
>
> Because this change uses phase time's cur_collection_start_sec() (when
> computing the rate of dirty card generation) it "suffers" from the same
> questions around GC pause start time as discussed in JDK-8240779.
>
> CR:
> https://bugs.openjdk.java.net/browse/JDK-8242078
> > Webrev:
> https://cr.openjdk.java.net/~kbarrett/8242078/open.00/
Some minor issues:
- G1CollectedHeap::gc_prologue - in new code doing timing measurements,
please use Ticks/Tickspan instead of double/os::elapsedTime.
- g1RemSetSummary.hpp:36: the "private" visibility specifier could be
removed as well.
- the modification to NonJavaThreadsList_lock maybe warrants a different
change. It just does not seem to fit although it looks correct.
- pre-existing: G1Analytics::predict_concurrent_refine-rate_ms does not
seem to be used. Also predict_logged_cards_rate_ms. Could that (and all
associated code) be removed so that the latter does not need to be renamed?
Seems good otherwise.
Thanks,
Thomas
More information about the hotspot-gc-dev
mailing list