41 #include "jfr/recorder/jfrRecorder.hpp" 42 #include "jfr/support/jfrThreadId.hpp" 43 #include "jfr/utilities/jfrTime.hpp" 44 #include "jfrfiles/jfrPeriodic.hpp" 45 #include "memory/heapInspection.hpp" 46 #include "memory/resourceArea.hpp" 47 #include "oops/oop.inline.hpp" 48 #include "runtime/arguments.hpp" 49 #include "runtime/globals.hpp" 50 #include "runtime/os.hpp" 51 #include "runtime/os_perf.hpp" 52 #include "runtime/thread.inline.hpp" 53 #include "runtime/sweeper.hpp" 54 #include "runtime/vmThread.hpp" 55 #include "services/classLoadingService.hpp" 56 #include "services/management.hpp" 57 #include "services/threadService.hpp" 58 #include "utilities/exceptions.hpp" 59 #include "utilities/globalDefinitions.hpp" 60 61 /** 62 * JfrPeriodic class 63 * Implementation of declarations in 64 * xsl generated traceRequestables.hpp 65 */ 66 #define TRACE_REQUEST_FUNC(id) void JfrPeriodicEventSet::request##id(void) 67 68 TRACE_REQUEST_FUNC(JVMInformation) { 69 ResourceMark rm; 70 EventJVMInformation event; 71 event.set_jvmName(VM_Version::vm_name()); 72 event.set_jvmVersion(VM_Version::internal_vm_info_string()); 73 event.set_javaArguments(Arguments::java_command()); 74 event.set_jvmArguments(Arguments::jvm_args()); 75 event.set_jvmFlags(Arguments::jvm_flags()); 76 event.set_jvmStartTime(Management::vm_init_done_time()); 77 event.set_pid(os::current_process_id()); 78 event.commit(); 79 } 80 541 event.set_reservedTopAddress((u8)CodeCache::high_bound()); 542 event.commit(); 543 } 544 545 TRACE_REQUEST_FUNC(CodeSweeperStatistics) { 546 EventCodeSweeperStatistics event; 547 event.set_sweepCount(NMethodSweeper::traversal_count()); 548 event.set_methodReclaimedCount(NMethodSweeper::total_nof_methods_reclaimed()); 549 event.set_totalSweepTime(NMethodSweeper::total_time_sweeping()); 550 event.set_peakFractionTime(NMethodSweeper::peak_sweep_fraction_time()); 551 event.set_peakSweepTime(NMethodSweeper::peak_sweep_time()); 552 event.commit(); 553 } 554 555 TRACE_REQUEST_FUNC(CodeSweeperConfiguration) { 556 EventCodeSweeperConfiguration event; 557 event.set_sweeperEnabled(MethodFlushing); 558 event.set_flushingEnabled(UseCodeCacheFlushing); 559 event.commit(); 560 } | 41 #include "jfr/recorder/jfrRecorder.hpp" 42 #include "jfr/support/jfrThreadId.hpp" 43 #include "jfr/utilities/jfrTime.hpp" 44 #include "jfrfiles/jfrPeriodic.hpp" 45 #include "memory/heapInspection.hpp" 46 #include "memory/resourceArea.hpp" 47 #include "oops/oop.inline.hpp" 48 #include "runtime/arguments.hpp" 49 #include "runtime/globals.hpp" 50 #include "runtime/os.hpp" 51 #include "runtime/os_perf.hpp" 52 #include "runtime/thread.inline.hpp" 53 #include "runtime/sweeper.hpp" 54 #include "runtime/vmThread.hpp" 55 #include "services/classLoadingService.hpp" 56 #include "services/management.hpp" 57 #include "services/threadService.hpp" 58 #include "utilities/exceptions.hpp" 59 #include "utilities/globalDefinitions.hpp" 60 61 #if INCLUDE_ALL_GCS 62 #include "gc_implementation/shenandoah/shenandoahJfrSupport.hpp" 63 #endif 64 65 /** 66 * JfrPeriodic class 67 * Implementation of declarations in 68 * xsl generated traceRequestables.hpp 69 */ 70 #define TRACE_REQUEST_FUNC(id) void JfrPeriodicEventSet::request##id(void) 71 72 TRACE_REQUEST_FUNC(JVMInformation) { 73 ResourceMark rm; 74 EventJVMInformation event; 75 event.set_jvmName(VM_Version::vm_name()); 76 event.set_jvmVersion(VM_Version::internal_vm_info_string()); 77 event.set_javaArguments(Arguments::java_command()); 78 event.set_jvmArguments(Arguments::jvm_args()); 79 event.set_jvmFlags(Arguments::jvm_flags()); 80 event.set_jvmStartTime(Management::vm_init_done_time()); 81 event.set_pid(os::current_process_id()); 82 event.commit(); 83 } 84 545 event.set_reservedTopAddress((u8)CodeCache::high_bound()); 546 event.commit(); 547 } 548 549 TRACE_REQUEST_FUNC(CodeSweeperStatistics) { 550 EventCodeSweeperStatistics event; 551 event.set_sweepCount(NMethodSweeper::traversal_count()); 552 event.set_methodReclaimedCount(NMethodSweeper::total_nof_methods_reclaimed()); 553 event.set_totalSweepTime(NMethodSweeper::total_time_sweeping()); 554 event.set_peakFractionTime(NMethodSweeper::peak_sweep_fraction_time()); 555 event.set_peakSweepTime(NMethodSweeper::peak_sweep_time()); 556 event.commit(); 557 } 558 559 TRACE_REQUEST_FUNC(CodeSweeperConfiguration) { 560 EventCodeSweeperConfiguration event; 561 event.set_sweeperEnabled(MethodFlushing); 562 event.set_flushingEnabled(UseCodeCacheFlushing); 563 event.commit(); 564 } 565 566 567 TRACE_REQUEST_FUNC(ShenandoahHeapRegionInformation) { 568 #if INCLUDE_ALL_GCS 569 if (UseShenandoahGC) { 570 VM_ShenandoahSendHeapRegionInfoEvents op; 571 VMThread::execute(&op); 572 } 573 #endif 574 } 575 |