RFR: JDK-8214097: Rework thread initialization and teardown logic
Daniel D. Daugherty
daniel.daugherty at oracle.com
Fri Dec 21 21:35:50 UTC 2018
David,
Sorry for the delay in getting to this review.
On 12/19/18 4:21 PM, David Holmes wrote:
> Following on from the preliminary RFR:
>
> http://mail.openjdk.java.net/pipermail/hotspot-dev/2018-December/035737.html
>
>
> I've merged with Kim's changes from 8215097.
>
> Bug: https://bugs.openjdk.java.net/browse/JDK-8214097
> Webrev: http://cr.openjdk.java.net/~dholmes/8214097/webrev.v2/
src/hotspot/os/linux/os_linux.cpp
No comments.
src/hotspot/share/gc/parallel/gcTaskThread.cpp
Nit - needs a copyright year update.
src/hotspot/share/gc/shared/concurrentGCThread.cpp
Nit - needs a copyright year update.
src/hotspot/share/gc/shared/workgroup.cpp
No comments.
src/hotspot/share/jfr/periodic/sampling/jfrThreadSampler.cpp
No comments.
src/hotspot/share/runtime/thread.cpp
L426: assert(_run_state == PRE_CALL_RUN ||
L427: _run_state == POST_RUN, "Active Thread deleted
before post_run()");
Adding a little more debug info would be helpful. Please consider:
assert(_run_state == PRE_CALL_RUN ||
_run_state == POST_RUN, "Active Thread deleted before
post_run(): "
"_run_state=%d", (int)_run_state);
L1082: assert(_starting_thread == NULL, "already initialized");
Adding a little more debug info would be helpful. Please consider:
assert(_starting_thread == NULL, "already initialized: "
"_starting_thread=" INTPTR_FORMAT, _starting_thread);
src/hotspot/share/runtime/thread.hpp
L112-L135:
I like the content of the new comment block. I'm not fond of
using yet another block comment style:
/*
<block of text>
*/
We already have:
/*
* <block of text>
*/
and (my preference):
//
// <block of text>
//
src/hotspot/share/runtime/vmThread.cpp
No comments.
src/hotspot/share/services/management.cpp
No comments.
test/hotspot/gtest/threadHelper.inline.hpp
No comments.
Thumbs up. I don't need to see another webrev if you choose to
fix the few things I noted above.
Dan
>
> Changes since previous discussion:
>
> - Replaced Kim's initial_thread_created assertion with a check of
> Thread::current_or_null, with an explanation
>
> - Removed NJT list addition at construction time as it's not needed
> after 8215097.
>
> - Moved the JavaThread call to this->exit(false); from the end of
> thread_main_inner to the start of post_run - as Markus suggested. This
> also necessitated a change to the gtest logic compared to the original
> as it has to override post_run() now to avoid the exit call.
>
> - Made get_thread_name_string virtual so that the JavaThread
> subclasses in the gtest can override it and allow their names to be
> seen in hs_err files. (Makes debugging so much easier when you know
> which thread crashed!).
>
> Testing:
> - Mach 5 tiers 1 - 3
> - All runtime tests with:
> - default GC
> - ZGC
> - Shenandoah GC
> - gc/g1
> - gc/serial
> - gc/epsilon
> - gc/shenandoah
>
> Thanks,
> David
More information about the hotspot-dev
mailing list