RFR: 8265450: Merge PreservedMarksSet::restore code paths

Stefan Johansson sjohanss at openjdk.java.net
Tue Apr 20 10:39:11 UTC 2021


On Tue, 20 Apr 2021 08:39:56 GMT, Thomas Schatzl <tschatzl at openjdk.org> wrote:

> Hi all,
> 
>   can I have reviews for this refactoring  that merges parallel and serial preserved marks restoration during evacuation failure into a single code path, simply by having the serial path call the parallel path in the VM thread.
> 
> This just reduces code and avoids the potential bugs when updating one path but not the other (which already happened).
> 
> The execution difference should not really matter for Serial GC where the serial path is executed:
> - we are talking about the evacuation failure path
> - there are likely a lot of preserved marks (random writes to the heap) that offset these two additional calls and some tiny superfluous member initialization.
> 
> Testing: tier1
> 
> Thanks,
>   Thomas

Looks good. Just a small comment.

src/hotspot/share/gc/shared/preservedMarks.cpp line 100:

> 98:   volatile size_t _total_size;
> 99: #ifdef ASSERT
> 100:   size_t _total_size_before;

I know `_total_size` is what was used before, but what do you think about changing it to `_total_count` now when we are touching it.

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

Marked as reviewed by sjohanss (Reviewer).

PR: https://git.openjdk.java.net/jdk/pull/3584



More information about the hotspot-gc-dev mailing list