RFR: 8253180: ZGC: Implementation of JEP 376: ZGC: Concurrent Thread-Stack Processing [v8]
Kim Barrett
kim.barrett at oracle.com
Tue Sep 29 22:20:35 UTC 2020
> On Sep 29, 2020, at 11:03 AM, Erik Österlund <eosterlund at openjdk.java.net> wrote:
>
> Changes: https://git.openjdk.java.net/jdk/pull/296/files
> Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=296&range=07
> Stats: 2705 lines in 129 files changed: 2137 ins; 310 del; 258 mod
> Patch: https://git.openjdk.java.net/jdk/pull/296.diff
> Fetch: git fetch https://git.openjdk.java.net/jdk pull/296/head:pull/296
>
> PR: https://git.openjdk.java.net/jdk/pull/296
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.
------------------------------------------------------------------------------
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.
------------------------------------------------------------------------------
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.
------------------------------------------------------------------------------
More information about the serviceability-dev
mailing list