RFR: 8152905: hs_err file is missing gc threads

Coleen Phillimore coleen.phillimore at oracle.com
Tue Apr 5 18:51:07 UTC 2016


Hi Derek,

I reviewed .02 webrev and it looks good.

thanks,
Coleen

On 3/30/16 11:44 AM, Daniel D. Daugherty wrote:
> On 3/29/16 9:32 PM, Derek White wrote:
>> Summary: List the GC threads in the hs_err file in the "Other 
>> Threads" section
>>
>> There are 4 small parts to this:
>> 1) Fix G1CollectedHeap::gc_threads_do() to also iterate over 
>> concurrent mark worker threads.
>> 2) Have Thread::print_on_error() print the thread name of NamedThreads.
>> 3) Factor out code that prints out each "Other Thread" to 
>> Threads::print_on_error().
>> 4) Call Threads::print_on_error() on every GC thread.
>>
>> BUG: 8152905: hs_err file is missing gc threads 
>> <https://bugs.openjdk.java.net/browse/JDK-8152905>
>> WEBREV: http://cr.openjdk.java.net/~drwhite/8152905/webrev.01/
>
> src/share/vm/runtime/thread.hpp
>     No comments.
>
> src/share/vm/runtime/thread.cpp
>     L831:   else st->print("Thread");
>     L832:
>     L833:   if (is_Named_thread()) {
>     L834:     st->print(" \"%s\"", name());
>     L835:   }
>
>         The new is_Named_thread() check is currently made for
>         every thread type, but only applies to the else-statement
>         on L831. That else-statement should change into an
>         else-block. Perhaps:
>
>         else {
>           st->print("Thread");
>           if (is_Named_thread()) {
>             st->print(" \"%s\"", name());
>           }
>         }
>
>     L4496:   if (this_thread) {
>         Should not use an implied boolean. This should be:
>
>         if (this_thread != NULL) {
>
>     L4533:     bool is_current = (current == thread);
>     L4534:     found_current = found_current || is_current;
>     L4535:
>     L4536:     st->print("%s", is_current ? "=>" : "  ");
>     L4537:
>     L4538:     st->print(PTR_FORMAT, p2i(thread));
>     L4539:     st->print(" ");
>     L4540:     thread->print_on_error(st, buf, buflen);
>     L4541:     st->cr();
>
>         I think this block can refactor into:
>
>           print_on_error(thread, st, current, buf, buflen, 
> &found_current);
>
> src/share/vm/gc/g1/g1CollectedHeap.cpp
>     No comments.
>
> src/share/vm/gc/g1/g1ConcurrentMark.cpp
>     No comments.
>
> src/share/vm/gc/g1/g1ConcurrentMark.hpp
>     No comments.
>
> Dan
>
>
>> TESTING:
>>  - Tested "java -XX:ErrorHandlerTest=1 -version" on all collectors.
>>  - jprt
>>
>> Thanks,
>>
>>  - Derek
>>
>



More information about the hotspot-runtime-dev mailing list