RFR: 8253180: ZGC: Implementation of JEP 376: ZGC: Concurrent Thread-Stack Processing [v8]
Erik Österlund
eosterlund at openjdk.java.net
Thu Oct 1 09:53:21 UTC 2020
On Tue, 29 Sep 2020 16:09:48 GMT, Robbin Ehn <rehn at openjdk.org> wrote:
>> Erik Österlund has updated the pull request with a new target base due to a merge or a rebase. The pull request now
>> contains 12 commits:
>> - Review: Move barrier detach
>> - Review: Remove assert that has outstayed its welcome
>> - Merge branch 'master' into 8253180_conc_stack_scanning
>> - Review: Albert CR2 and defensive programming
>> - Review: StefanK CR 3
>> - Review: Per CR 1
>> - Merge branch 'master' into 8253180_conc_stack_scanning
>> - Review: Albert CR 1
>> - Review: SteafanK CR 2
>> - Merge branch 'master' into 8253180_conc_stack_scanning
>> - ... and 2 more: https://git.openjdk.java.net/jdk/compare/6bddeb70...2ffbd764
>
> Marked as reviewed by rehn (Reviewer).
> _Mailing list message from [Kim Barrett](mailto:kim.barrett at oracle.com) on
> [hotspot-dev](mailto:hotspot-dev at openjdk.java.net):_
> I've only looked at scattered pieces, but what I've looked at seemed to be
> in good shape. Only a few minor comments.
>
> ------------------------------------------------------------------------------
> src/hotspot/share/runtime/frame.cpp
> 456 // for(StackFrameStream fst(thread); !fst.is_done(); fst.next()) {
>
> Needs to be updated for the new constructor arguments. Just in general, the
> class documentation seems to need some updating for this change.
Fixed.
> ------------------------------------------------------------------------------
> src/hotspot/share/runtime/frame.cpp
> 466 StackFrameStream(JavaThread *thread, bool update, bool process_frames);
>
> Something to consider is that bool parameters like that, especially when
> there are multiple, are error prone. An alternative is distinct enums, which
> likely also obviates the need for comments in calls.
Coleen also had the same comment, and we agreed to file a follow-up RFE to clean that up. This also applies to all the
existing parameters passed in. So I would still like to do that, but in a follow-up RFE. Said RFE will also make the
parameter use in RegisterMap and vframeStream explicit.
> ------------------------------------------------------------------------------
> src/hotspot/share/runtime/thread.hpp
> 956 void set_processed_thread(Thread *thread) { _processed_thread = thread; }
>
> I think this should assert that either _processed_thread or thread are NULL.
> Or maybe the RememberProcessedThread constructor should be asserting that
> _cur_thr->processed_thread() is NULL.
Fixed.
> ------------------------------------------------------------------------------
Thanks for the review Kim!
-------------
PR: https://git.openjdk.java.net/jdk/pull/296
More information about the serviceability-dev
mailing list