RFR: 8256298: Shenandoah: Enable concurrent stack processing [v3]

Roman Kennke rkennke at openjdk.java.net
Mon Jan 25 14:27:44 UTC 2021


On Mon, 25 Jan 2021 13:33:06 GMT, Zhengyu Gu <zgu at openjdk.org> wrote:

>> Please review this patch that enables concurrent stack processing for Shenandoah GC.
>> 
>> After this patch, all root processing is done concurrently for concurrent GC.
>> 
>> Test:
>> - [x] hotspot_gc_shenandoah Linux x86_64 and x86_32
>> - [x] Nightly
>> - [x] tier1 with -XX:+UseShenandoahGC on Linux x86_32
>
> Zhengyu Gu has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Roman's comments

Better, thanks! Found a few more very minor complaints (sorry... ;-) )

src/hotspot/share/gc/shenandoah/shenandoahStackWatermark.cpp line 3:

> 1: /*
> 2:  * Copyright (c) 2021, Red Hat, Inc. All rights reserved.
> 3:  * Copyright (c) 2021, Oracle and/or its affiliates. All rights reserved.

Small nit: the original copyright in the corresponding z* files is dated 2020. Please preserve that. Leave the Red Hat copyright at 2021. Sorry.

src/hotspot/share/gc/shenandoah/shenandoahStackWatermark.hpp line 45:

> 43:   BarrierSetNMethod* _bs_nm;
> 44: 
> 45:   virtual void do_code_blob(CodeBlob* cb);

There is no need to mark this virtual, or is there? I see you put override in the other place in that change, so maybe put it here too?

src/hotspot/share/gc/shenandoah/shenandoahStackWatermark.hpp line 68:

> 66:   OopClosure* closure_from_context(void* context);
> 67:   virtual uint32_t epoch_id() const;
> 68:   virtual void start_processing_impl(void* context);

Also, similar to the other case, we might avoid virtual here, and use override instead?

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

Changes requested by rkennke (Reviewer).

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



More information about the hotspot-gc-dev mailing list