RFR: 8270009: Factor out and shuffle methods in G1CollectedHeap::do_collection_pause_at_safepoint_helper [v2]
tschatzl at openjdk.java.net
Mon Jul 12 13:06:55 UTC 2021
On Mon, 12 Jul 2021 12:06:21 GMT, Kim Barrett <kbarrett at openjdk.org> wrote:
>> I came to the same conclusion and considering that waiting as a candidate for putting it into the going-to-be parallel pre-evacuation phase. Then again, it might not be useful to have both the concurrent worker threads and parallel threads working at the same time (for performance reasons only; I do not consider the potential parallel verification also using the parallel worker threads as an issue). I checked that verification does not interfere with it (i.e. verification does not care about the mark bitmap in that sense).
>> The only requirement I can see is that all of these root-region objects need to have their referents marked, i.e. they must not be overwritten in some way, which this place guarantees as well, and to me it seems a more fitting place.
> A problem with moving it later to the new placement is that it's now included in the pause time, where it previously wasn't. I'm not sure it should be included in the pause time, as it's not really part of this collection. I also wonder if the root scanning ought to be done using the concurrent workers rather than the stw workers, as there are typically fewer of the former (required to not be more?).
It is true that it is now also included in the time used for MMU calculation (as part of the `record_collection_start/end` pair), which may a problem.
Previous gc timing also included it though, i.e. in the `note_gc_start()/print_phase_times()` pair.
I'll move it back then.
More information about the hotspot-gc-dev