RFR: 8078601: print_concurrent_locks should be guarded with INCLUDE_SERVICES

Stefan Karlsson stefan.karlsson at oracle.com
Fri Apr 24 14:41:38 UTC 2015


Hi,

Please review this patch to fix an incorrect usage of #if INCLUDE_ALL_GCS.

http://cr.openjdk.java.net/~stefank/8078601/webrev.01/
https://bugs.openjdk.java.net/browse/JDK-8078601

This code in thread.cpp is guarded by INCLUDE_ALL_GCS:
#if INCLUDE_ALL_GCS
   // Dump concurrent locks
   ConcurrentLocksDump concurrent_locks;
   if (print_concurrent_locks) {
     concurrent_locks.dump_at_safepoint();
   }
#endif // INCLUDE_ALL_GCS

but the code is not specific to any of our non-Serial GCs. The code 
should be guarded by INCLUDE_SERVICES.

ConcurrentLocksDump::dump_at_safepoint() uses 
HeapInspection::find_instances_at_safepoint, which is declared in 
heapInspection.hpp:
   static void find_instances_at_safepoint(Klass* k, GrowableArray<oop>* 
result) NOT_SERVICES_RETURN;

and heapInspection.cpp is excluded when INCLUDE_SERVICES is false. See: 
make/excludeSrc.make:

ifeq ($(INCLUDE_SERVICES), false)
       CXXFLAGS += -DINCLUDE_SERVICES=0
       CFLAGS += -DINCLUDE_SERVICES=0

       Src_Files_EXCLUDE += heapDumper.cpp heapInspection.cpp \
         attachListener_linux.cpp attachListener.cpp
endif

I've verified that this change builds with minimal1 and full HotSpot 
slowdebug build.

Thanks,
Stefank


More information about the serviceability-dev mailing list