src/hotspot/share/jfr/periodic/jfrPeriodic.cpp
branchJEP-349-branch
changeset 57360 5d043a159d5c
parent 54899 e4cff3cf0234
child 57870 00860d9caf4d
equal deleted inserted replaced
57359:4cab5edc2950 57360:5d043a159d5c
    43 #include "jfr/periodic/jfrThreadCPULoadEvent.hpp"
    43 #include "jfr/periodic/jfrThreadCPULoadEvent.hpp"
    44 #include "jfr/periodic/jfrThreadDumpEvent.hpp"
    44 #include "jfr/periodic/jfrThreadDumpEvent.hpp"
    45 #include "jfr/periodic/jfrNetworkUtilization.hpp"
    45 #include "jfr/periodic/jfrNetworkUtilization.hpp"
    46 #include "jfr/recorder/jfrRecorder.hpp"
    46 #include "jfr/recorder/jfrRecorder.hpp"
    47 #include "jfr/support/jfrThreadId.hpp"
    47 #include "jfr/support/jfrThreadId.hpp"
       
    48 #include "jfr/utilities/jfrThreadIterator.hpp"
    48 #include "jfr/utilities/jfrTime.hpp"
    49 #include "jfr/utilities/jfrTime.hpp"
    49 #include "jfrfiles/jfrPeriodic.hpp"
    50 #include "jfrfiles/jfrPeriodic.hpp"
    50 #include "logging/log.hpp"
    51 #include "logging/log.hpp"
    51 #include "memory/heapInspection.hpp"
    52 #include "memory/heapInspection.hpp"
    52 #include "memory/resourceArea.hpp"
    53 #include "memory/resourceArea.hpp"
    55 #include "runtime/flags/jvmFlag.hpp"
    56 #include "runtime/flags/jvmFlag.hpp"
    56 #include "runtime/globals.hpp"
    57 #include "runtime/globals.hpp"
    57 #include "runtime/os.hpp"
    58 #include "runtime/os.hpp"
    58 #include "runtime/os_perf.hpp"
    59 #include "runtime/os_perf.hpp"
    59 #include "runtime/thread.inline.hpp"
    60 #include "runtime/thread.inline.hpp"
    60 #include "runtime/threadSMR.hpp"
       
    61 #include "runtime/sweeper.hpp"
    61 #include "runtime/sweeper.hpp"
    62 #include "runtime/vmThread.hpp"
    62 #include "runtime/vmThread.hpp"
    63 #include "services/classLoadingService.hpp"
    63 #include "services/classLoadingService.hpp"
    64 #include "services/management.hpp"
    64 #include "services/management.hpp"
    65 #include "services/threadService.hpp"
    65 #include "services/threadService.hpp"
   414   ResourceMark rm;
   414   ResourceMark rm;
   415   int initial_size = Threads::number_of_threads();
   415   int initial_size = Threads::number_of_threads();
   416   GrowableArray<jlong> allocated(initial_size);
   416   GrowableArray<jlong> allocated(initial_size);
   417   GrowableArray<traceid> thread_ids(initial_size);
   417   GrowableArray<traceid> thread_ids(initial_size);
   418   JfrTicks time_stamp = JfrTicks::now();
   418   JfrTicks time_stamp = JfrTicks::now();
       
   419 
   419   {
   420   {
   420     // Collect allocation statistics while holding threads lock
   421     JfrJavaThreadIterator iter;
   421     MutexLocker ml(Threads_lock);
   422     while (iter.has_next()) {
   422     for (JavaThreadIteratorWithHandle jtiwh; JavaThread *jt = jtiwh.next(); ) {
   423       JavaThread* const jt = iter.next();
       
   424       assert(jt != NULL, "invariant");
       
   425 
   423       allocated.append(jt->cooked_allocated_bytes());
   426       allocated.append(jt->cooked_allocated_bytes());
   424       thread_ids.append(JFR_THREAD_ID(jt));
   427       thread_ids.append(JFR_THREAD_ID(jt));
   425     }
   428     }
   426   }
   429   }
   427 
   430