RFR: 8337267: [REDO] G1: Refactor G1RebuildRSAndScrubTask

Albert Mingkun Yang ayang at openjdk.org
Mon Jul 29 10:39:32 UTC 2024


On Mon, 29 Jul 2024 10:31:13 GMT, Guoxiong Li <gli at openjdk.org> wrote:

>> The first commit is the original and the second commit fixes the issue, `should_rebuild_or_scrub` should be unconditional because `yield_if_necessary` is called on two diff levels, per-obj and per-obj-chunk. `yield_if_necessary` should return the same value for the same region in two consecutive invocations.
>> 
>> Test: tier1-6, 500 successful runs of gc/logging/TestUnifiedLoggingSwitchStress.java, with 4/100 failing rate without the second commit.
>
> src/hotspot/share/gc/g1/g1ConcurrentRebuildAndScrub.cpp line 102:
> 
>> 100:         }
>> 101:       }
>> 102:       return _cm->has_aborted() || !should_rebuild_or_scrub(hr);
> 
> If I don't miss anything, this is the difference between the previous patch and this one.

Yes, this is what the second commit in this PR contains.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/20348#discussion_r1694991894


More information about the hotspot-gc-dev mailing list