RFR: 8152905: hs_err file is missing gc threads (original) (raw)

Daniel D. Daugherty daniel.daugherty at oracle.com
Wed Mar 30 15:44:08 UTC 2016


On 3/29/16 9:32 PM, Derek White wrote:

Summary: List the GC threads in the hserr file in the "Other Threads" section

There are 4 small parts to this: 1) Fix G1CollectedHeap::gcthreadsdo() to also iterate over concurrent mark worker threads. 2) Have Thread::printonerror() print the thread name of NamedThreads. 3) Factor out code that prints out each "Other Thread" to Threads::printonerror(). 4) Call Threads::printonerror() on every GC thread. BUG: 8152905: hserr 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-gc-dev mailing list