RFR: 8271060: Merge G1CollectedHeap::determine_start_concurrent_mark_gc and G1Policy::decide_on_conc_mark_initiation
Albert Mingkun Yang
ayang at openjdk.java.net
Thu Jul 22 10:19:49 UTC 2021
On Thu, 22 Jul 2021 08:46:36 GMT, Thomas Schatzl <tschatzl at openjdk.org> wrote:
> Hi all,
>
> can I have reviews for this merge of two methods that have the same purpose: determine whether this pause should be a concurrent start pause. The reason for this merge is that `G1CollectedHeap::determine_start_concurrent_mark_gc` just calls the other, and
> - is the only caller
> - only adds another condition of the same type that `G1Policy::decide_on_conc_mark_initiation` does at the beginning
> - adds some return value checking and return value
> which all imho fit into `G1Policy::decide_on_conc_mark_initiation` too.
>
> It also reduces `G1CollectedHeap` a bit. The main reason for me to put this in the new location is basically that that additional condition in `G1CollectedHeap::determine_start_concurrent_mark_gc` makes all conditions for that decision be located closer together.
>
> If you think otherwise and this is a bad idea, I will close this PR.
>
> Testing: manual gc/g1 runs
>
> Thanks,
> Thomas
bool should_start_concurrent_mark_operation = policy()->decide_on_concurrent_start_pause();
The name, `decide_on_concurrent_start_pause()`, is not very obvious, IMO; I feel it's because it's trying to do two things: 1. deciding the pause type, 2. returns whether the decided pause type is concurrent_start_gc.
I wonder if sth like the following (decoupling the two tasks) is clearer:
policy()->decide_pause_type();
bool should_start_concurrent_mark_operation = collector_state()->in_concurrent_start_gc();
Ofc, this is very subjective. The PR is fine as it is.
-------------
Marked as reviewed by ayang (Committer).
PR: https://git.openjdk.java.net/jdk/pull/4867
More information about the hotspot-gc-dev
mailing list