8164523: Clean up metadata for event based tracing
Reviewed-by: mlarsson, mgronlun
This commit is contained in:
parent
d4728727fb
commit
c98e599afa
@ -4255,7 +4255,7 @@ void GraphBuilder::print_inlining(ciMethod* callee, const char* msg, bool succes
|
|||||||
#if INCLUDE_TRACE
|
#if INCLUDE_TRACE
|
||||||
EventCompilerInlining event;
|
EventCompilerInlining event;
|
||||||
if (event.should_commit()) {
|
if (event.should_commit()) {
|
||||||
event.set_compileID(compilation()->env()->task()->compile_id());
|
event.set_compileId(compilation()->env()->task()->compile_id());
|
||||||
event.set_message(msg);
|
event.set_message(msg);
|
||||||
event.set_succeeded(success);
|
event.set_succeeded(success);
|
||||||
event.set_bci(bci());
|
event.set_bci(bci());
|
||||||
|
@ -1149,10 +1149,10 @@ void ciEnv::record_failure(const char* reason) {
|
|||||||
|
|
||||||
void ciEnv::report_failure(const char* reason) {
|
void ciEnv::report_failure(const char* reason) {
|
||||||
// Create and fire JFR event
|
// Create and fire JFR event
|
||||||
EventCompilerFailure event;
|
EventCompilationFailure event;
|
||||||
if (event.should_commit()) {
|
if (event.should_commit()) {
|
||||||
event.set_compileID(compile_id());
|
event.set_compileId(compile_id());
|
||||||
event.set_failure(reason);
|
event.set_failureMessage(reason);
|
||||||
event.commit();
|
event.commit();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1410,11 +1410,11 @@ void ciMethod::print_impl(outputStream* st) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#if INCLUDE_TRACE
|
#if INCLUDE_TRACE
|
||||||
TraceStructCiMethod ciMethod::to_trace_struct() const {
|
TraceStructCalleeMethod ciMethod::to_trace_struct() const {
|
||||||
TraceStructCiMethod result;
|
TraceStructCalleeMethod result;
|
||||||
result.set_class(holder()->name()->as_utf8());
|
result.set_type(holder()->name()->as_utf8());
|
||||||
result.set_name(name()->as_utf8());
|
result.set_name(name()->as_utf8());
|
||||||
result.set_signature(signature()->as_symbol()->as_utf8());
|
result.set_descriptor(signature()->as_symbol()->as_utf8());
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -342,7 +342,7 @@ class ciMethod : public ciMetadata {
|
|||||||
void print_short_name(outputStream* st = tty);
|
void print_short_name(outputStream* st = tty);
|
||||||
|
|
||||||
#if INCLUDE_TRACE
|
#if INCLUDE_TRACE
|
||||||
TraceStructCiMethod to_trace_struct() const;
|
TraceStructCalleeMethod to_trace_struct() const;
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1641,7 +1641,6 @@ void SystemDictionary::define_instance_class(instanceKlassHandle k, TRAPS) {
|
|||||||
JvmtiExport::post_class_load((JavaThread *) THREAD, k());
|
JvmtiExport::post_class_load((JavaThread *) THREAD, k());
|
||||||
|
|
||||||
}
|
}
|
||||||
TRACE_KLASS_DEFINITION(k, THREAD);
|
|
||||||
class_define_event(k);
|
class_define_event(k);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1755,7 +1755,7 @@ void CompileBroker::post_compile(CompilerThread* thread, CompileTask* task, Even
|
|||||||
assert(task->compile_id() != CICrashAt, "just as planned");
|
assert(task->compile_id() != CICrashAt, "just as planned");
|
||||||
if (event.should_commit()) {
|
if (event.should_commit()) {
|
||||||
event.set_method(task->method());
|
event.set_method(task->method());
|
||||||
event.set_compileID(task->compile_id());
|
event.set_compileId(task->compile_id());
|
||||||
event.set_compileLevel(task->comp_level());
|
event.set_compileLevel(task->comp_level());
|
||||||
event.set_succeded(task->is_success());
|
event.set_succeded(task->is_success());
|
||||||
event.set_isOsr(task->osr_bci() != CompileBroker::standard_entry_bci);
|
event.set_isOsr(task->osr_bci() != CompileBroker::standard_entry_bci);
|
||||||
@ -2399,4 +2399,3 @@ void CompileBroker::print_last_compile() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -39,7 +39,7 @@ void HeapRegionTracer::send_region_type_change(uint index,
|
|||||||
e.set_to(to);
|
e.set_to(to);
|
||||||
e.set_start(start);
|
e.set_start(start);
|
||||||
e.set_used(used);
|
e.set_used(used);
|
||||||
e.set_allocContext(allocationContext);
|
e.set_allocationContext(allocationContext);
|
||||||
e.commit();
|
e.commit();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -29,18 +29,18 @@
|
|||||||
#include "utilities/globalDefinitions.hpp"
|
#include "utilities/globalDefinitions.hpp"
|
||||||
|
|
||||||
void AllocTracer::send_allocation_outside_tlab_event(KlassHandle klass, size_t alloc_size) {
|
void AllocTracer::send_allocation_outside_tlab_event(KlassHandle klass, size_t alloc_size) {
|
||||||
EventAllocObjectOutsideTLAB event;
|
EventObjectAllocationOutsideTLAB event;
|
||||||
if (event.should_commit()) {
|
if (event.should_commit()) {
|
||||||
event.set_class(klass());
|
event.set_objectClass(klass());
|
||||||
event.set_allocationSize(alloc_size);
|
event.set_allocationSize(alloc_size);
|
||||||
event.commit();
|
event.commit();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void AllocTracer::send_allocation_in_new_tlab_event(KlassHandle klass, size_t tlab_size, size_t alloc_size) {
|
void AllocTracer::send_allocation_in_new_tlab_event(KlassHandle klass, size_t tlab_size, size_t alloc_size) {
|
||||||
EventAllocObjectInNewTLAB event;
|
EventObjectAllocationInNewTLAB event;
|
||||||
if (event.should_commit()) {
|
if (event.should_commit()) {
|
||||||
event.set_class(klass());
|
event.set_objectClass(klass());
|
||||||
event.set_allocationSize(alloc_size);
|
event.set_allocationSize(alloc_size);
|
||||||
event.set_tlabSize(tlab_size);
|
event.set_tlabSize(tlab_size);
|
||||||
event.commit();
|
event.commit();
|
||||||
|
@ -43,7 +43,7 @@
|
|||||||
typedef uintptr_t TraceAddress;
|
typedef uintptr_t TraceAddress;
|
||||||
|
|
||||||
void GCTracer::send_garbage_collection_event() const {
|
void GCTracer::send_garbage_collection_event() const {
|
||||||
EventGCGarbageCollection event(UNTIMED);
|
EventGarbageCollection event(UNTIMED);
|
||||||
if (event.should_commit()) {
|
if (event.should_commit()) {
|
||||||
event.set_gcId(GCId::current());
|
event.set_gcId(GCId::current());
|
||||||
event.set_name(_shared_gc_info.name());
|
event.set_name(_shared_gc_info.name());
|
||||||
@ -91,7 +91,7 @@ void GCTracer::send_metaspace_chunk_free_list_summary(GCWhen::Type when, Metaspa
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ParallelOldTracer::send_parallel_old_event() const {
|
void ParallelOldTracer::send_parallel_old_event() const {
|
||||||
EventGCParallelOld e(UNTIMED);
|
EventParallelOldGarbageCollection e(UNTIMED);
|
||||||
if (e.should_commit()) {
|
if (e.should_commit()) {
|
||||||
e.set_gcId(GCId::current());
|
e.set_gcId(GCId::current());
|
||||||
e.set_densePrefix((TraceAddress)_parallel_old_gc_info.dense_prefix());
|
e.set_densePrefix((TraceAddress)_parallel_old_gc_info.dense_prefix());
|
||||||
@ -102,7 +102,7 @@ void ParallelOldTracer::send_parallel_old_event() const {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void YoungGCTracer::send_young_gc_event() const {
|
void YoungGCTracer::send_young_gc_event() const {
|
||||||
EventGCYoungGarbageCollection e(UNTIMED);
|
EventYoungGarbageCollection e(UNTIMED);
|
||||||
if (e.should_commit()) {
|
if (e.should_commit()) {
|
||||||
e.set_gcId(GCId::current());
|
e.set_gcId(GCId::current());
|
||||||
e.set_tenuringThreshold(_tenuring_threshold);
|
e.set_tenuringThreshold(_tenuring_threshold);
|
||||||
@ -127,7 +127,7 @@ void YoungGCTracer::send_promotion_in_new_plab_event(Klass* klass, size_t obj_si
|
|||||||
EventPromoteObjectInNewPLAB event;
|
EventPromoteObjectInNewPLAB event;
|
||||||
if (event.should_commit()) {
|
if (event.should_commit()) {
|
||||||
event.set_gcId(GCId::current());
|
event.set_gcId(GCId::current());
|
||||||
event.set_class(klass);
|
event.set_objectClass(klass);
|
||||||
event.set_objectSize(obj_size);
|
event.set_objectSize(obj_size);
|
||||||
event.set_tenured(tenured);
|
event.set_tenured(tenured);
|
||||||
event.set_tenuringAge(age);
|
event.set_tenuringAge(age);
|
||||||
@ -142,7 +142,7 @@ void YoungGCTracer::send_promotion_outside_plab_event(Klass* klass, size_t obj_s
|
|||||||
EventPromoteObjectOutsidePLAB event;
|
EventPromoteObjectOutsidePLAB event;
|
||||||
if (event.should_commit()) {
|
if (event.should_commit()) {
|
||||||
event.set_gcId(GCId::current());
|
event.set_gcId(GCId::current());
|
||||||
event.set_class(klass);
|
event.set_objectClass(klass);
|
||||||
event.set_objectSize(obj_size);
|
event.set_objectSize(obj_size);
|
||||||
event.set_tenured(tenured);
|
event.set_tenured(tenured);
|
||||||
event.set_tenuringAge(age);
|
event.set_tenuringAge(age);
|
||||||
@ -151,7 +151,7 @@ void YoungGCTracer::send_promotion_outside_plab_event(Klass* klass, size_t obj_s
|
|||||||
}
|
}
|
||||||
|
|
||||||
void OldGCTracer::send_old_gc_event() const {
|
void OldGCTracer::send_old_gc_event() const {
|
||||||
EventGCOldGarbageCollection e(UNTIMED);
|
EventOldGarbageCollection e(UNTIMED);
|
||||||
if (e.should_commit()) {
|
if (e.should_commit()) {
|
||||||
e.set_gcId(GCId::current());
|
e.set_gcId(GCId::current());
|
||||||
e.set_starttime(_shared_gc_info.start_timestamp());
|
e.set_starttime(_shared_gc_info.start_timestamp());
|
||||||
@ -173,7 +173,7 @@ void YoungGCTracer::send_promotion_failed_event(const PromotionFailedInfo& pf_in
|
|||||||
EventPromotionFailed e;
|
EventPromotionFailed e;
|
||||||
if (e.should_commit()) {
|
if (e.should_commit()) {
|
||||||
e.set_gcId(GCId::current());
|
e.set_gcId(GCId::current());
|
||||||
e.set_data(to_trace_struct(pf_info));
|
e.set_promotionFailed(to_trace_struct(pf_info));
|
||||||
e.set_thread(pf_info.thread_trace_id());
|
e.set_thread(pf_info.thread_trace_id());
|
||||||
e.commit();
|
e.commit();
|
||||||
}
|
}
|
||||||
@ -190,7 +190,7 @@ void OldGCTracer::send_concurrent_mode_failure_event() {
|
|||||||
|
|
||||||
#if INCLUDE_ALL_GCS
|
#if INCLUDE_ALL_GCS
|
||||||
void G1NewTracer::send_g1_young_gc_event() {
|
void G1NewTracer::send_g1_young_gc_event() {
|
||||||
EventGCG1GarbageCollection e(UNTIMED);
|
EventG1GarbageCollection e(UNTIMED);
|
||||||
if (e.should_commit()) {
|
if (e.should_commit()) {
|
||||||
e.set_gcId(GCId::current());
|
e.set_gcId(GCId::current());
|
||||||
e.set_type(_g1_young_gc_info.type());
|
e.set_type(_g1_young_gc_info.type());
|
||||||
@ -201,7 +201,7 @@ void G1NewTracer::send_g1_young_gc_event() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void G1MMUTracer::send_g1_mmu_event(double timeSlice, double gcTime, double maxTime) {
|
void G1MMUTracer::send_g1_mmu_event(double timeSlice, double gcTime, double maxTime) {
|
||||||
EventGCG1MMU e;
|
EventG1MMU e;
|
||||||
if (e.should_commit()) {
|
if (e.should_commit()) {
|
||||||
e.set_gcId(GCId::current());
|
e.set_gcId(GCId::current());
|
||||||
e.set_timeSlice(timeSlice);
|
e.set_timeSlice(timeSlice);
|
||||||
@ -212,15 +212,15 @@ void G1MMUTracer::send_g1_mmu_event(double timeSlice, double gcTime, double maxT
|
|||||||
}
|
}
|
||||||
|
|
||||||
void G1NewTracer::send_evacuation_info_event(EvacuationInfo* info) {
|
void G1NewTracer::send_evacuation_info_event(EvacuationInfo* info) {
|
||||||
EventEvacuationInfo e;
|
EventEvacuationInformation e;
|
||||||
if (e.should_commit()) {
|
if (e.should_commit()) {
|
||||||
e.set_gcId(GCId::current());
|
e.set_gcId(GCId::current());
|
||||||
e.set_cSetRegions(info->collectionset_regions());
|
e.set_cSetRegions(info->collectionset_regions());
|
||||||
e.set_cSetUsedBefore(info->collectionset_used_before());
|
e.set_cSetUsedBefore(info->collectionset_used_before());
|
||||||
e.set_cSetUsedAfter(info->collectionset_used_after());
|
e.set_cSetUsedAfter(info->collectionset_used_after());
|
||||||
e.set_allocationRegions(info->allocation_regions());
|
e.set_allocationRegions(info->allocation_regions());
|
||||||
e.set_allocRegionsUsedBefore(info->alloc_regions_used_before());
|
e.set_allocationRegionsUsedBefore(info->alloc_regions_used_before());
|
||||||
e.set_allocRegionsUsedAfter(info->alloc_regions_used_before() + info->bytes_copied());
|
e.set_allocationRegionsUsedAfter(info->alloc_regions_used_before() + info->bytes_copied());
|
||||||
e.set_bytesCopied(info->bytes_copied());
|
e.set_bytesCopied(info->bytes_copied());
|
||||||
e.set_regionsFreed(info->regions_freed());
|
e.set_regionsFreed(info->regions_freed());
|
||||||
e.commit();
|
e.commit();
|
||||||
@ -231,13 +231,14 @@ void G1NewTracer::send_evacuation_failed_event(const EvacuationFailedInfo& ef_in
|
|||||||
EventEvacuationFailed e;
|
EventEvacuationFailed e;
|
||||||
if (e.should_commit()) {
|
if (e.should_commit()) {
|
||||||
e.set_gcId(GCId::current());
|
e.set_gcId(GCId::current());
|
||||||
e.set_data(to_trace_struct(ef_info));
|
e.set_evacuationFailed(to_trace_struct(ef_info));
|
||||||
e.commit();
|
e.commit();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static TraceStructG1EvacStats create_g1_evacstats(unsigned gcid, const G1EvacSummary& summary) {
|
static TraceStructG1EvacuationStatistics
|
||||||
TraceStructG1EvacStats s;
|
create_g1_evacstats(unsigned gcid, const G1EvacSummary& summary) {
|
||||||
|
TraceStructG1EvacuationStatistics s;
|
||||||
s.set_gcId(gcid);
|
s.set_gcId(gcid);
|
||||||
s.set_allocated(summary.allocated() * HeapWordSize);
|
s.set_allocated(summary.allocated() * HeapWordSize);
|
||||||
s.set_wasted(summary.wasted() * HeapWordSize);
|
s.set_wasted(summary.wasted() * HeapWordSize);
|
||||||
@ -252,17 +253,17 @@ static TraceStructG1EvacStats create_g1_evacstats(unsigned gcid, const G1EvacSum
|
|||||||
}
|
}
|
||||||
|
|
||||||
void G1NewTracer::send_young_evacuation_statistics(const G1EvacSummary& summary) const {
|
void G1NewTracer::send_young_evacuation_statistics(const G1EvacSummary& summary) const {
|
||||||
EventGCG1EvacuationYoungStatistics surv_evt;
|
EventG1EvacuationYoungStatistics surv_evt;
|
||||||
if (surv_evt.should_commit()) {
|
if (surv_evt.should_commit()) {
|
||||||
surv_evt.set_stats(create_g1_evacstats(GCId::current(), summary));
|
surv_evt.set_statistics(create_g1_evacstats(GCId::current(), summary));
|
||||||
surv_evt.commit();
|
surv_evt.commit();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void G1NewTracer::send_old_evacuation_statistics(const G1EvacSummary& summary) const {
|
void G1NewTracer::send_old_evacuation_statistics(const G1EvacSummary& summary) const {
|
||||||
EventGCG1EvacuationOldStatistics old_evt;
|
EventG1EvacuationOldStatistics old_evt;
|
||||||
if (old_evt.should_commit()) {
|
if (old_evt.should_commit()) {
|
||||||
old_evt.set_stats(create_g1_evacstats(GCId::current(), summary));
|
old_evt.set_statistics(create_g1_evacstats(GCId::current(), summary));
|
||||||
old_evt.commit();
|
old_evt.commit();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -273,7 +274,7 @@ void G1NewTracer::send_basic_ihop_statistics(size_t threshold,
|
|||||||
size_t last_allocation_size,
|
size_t last_allocation_size,
|
||||||
double last_allocation_duration,
|
double last_allocation_duration,
|
||||||
double last_marking_length) {
|
double last_marking_length) {
|
||||||
EventGCG1BasicIHOP evt;
|
EventG1BasicIHOP evt;
|
||||||
if (evt.should_commit()) {
|
if (evt.should_commit()) {
|
||||||
evt.set_gcId(GCId::current());
|
evt.set_gcId(GCId::current());
|
||||||
evt.set_threshold(threshold);
|
evt.set_threshold(threshold);
|
||||||
@ -295,7 +296,7 @@ void G1NewTracer::send_adaptive_ihop_statistics(size_t threshold,
|
|||||||
double predicted_allocation_rate,
|
double predicted_allocation_rate,
|
||||||
double predicted_marking_length,
|
double predicted_marking_length,
|
||||||
bool prediction_active) {
|
bool prediction_active) {
|
||||||
EventGCG1AdaptiveIHOP evt;
|
EventG1AdaptiveIHOP evt;
|
||||||
if (evt.should_commit()) {
|
if (evt.should_commit()) {
|
||||||
evt.set_gcId(GCId::current());
|
evt.set_gcId(GCId::current());
|
||||||
evt.set_threshold(threshold);
|
evt.set_threshold(threshold);
|
||||||
|
@ -40,7 +40,7 @@ void ObjectCountEventSender::send(const KlassInfoEntry* entry, const Ticks& time
|
|||||||
|
|
||||||
EventObjectCountAfterGC event(UNTIMED);
|
EventObjectCountAfterGC event(UNTIMED);
|
||||||
event.set_gcId(GCId::current());
|
event.set_gcId(GCId::current());
|
||||||
event.set_class(entry->klass());
|
event.set_objectClass(entry->klass());
|
||||||
event.set_count(entry->count());
|
event.set_count(entry->count());
|
||||||
event.set_totalSize(entry->words() * BytesPerWord);
|
event.set_totalSize(entry->words() * BytesPerWord);
|
||||||
event.set_endtime(timestamp);
|
event.set_endtime(timestamp);
|
||||||
|
@ -508,7 +508,7 @@ void InlineTree::print_inlining(ciMethod* callee_method, int caller_bci,
|
|||||||
#if INCLUDE_TRACE
|
#if INCLUDE_TRACE
|
||||||
EventCompilerInlining event;
|
EventCompilerInlining event;
|
||||||
if (event.should_commit()) {
|
if (event.should_commit()) {
|
||||||
event.set_compileID(C->compile_id());
|
event.set_compileId(C->compile_id());
|
||||||
event.set_message(inline_msg);
|
event.set_message(inline_msg);
|
||||||
event.set_succeeded(success);
|
event.set_succeeded(success);
|
||||||
event.set_bci(caller_bci);
|
event.set_bci(caller_bci);
|
||||||
|
@ -729,7 +729,7 @@ class Compile : public Phase {
|
|||||||
if (event.should_commit()) {
|
if (event.should_commit()) {
|
||||||
event.set_starttime(C->_latest_stage_start_counter);
|
event.set_starttime(C->_latest_stage_start_counter);
|
||||||
event.set_phase((u1) cpt);
|
event.set_phase((u1) cpt);
|
||||||
event.set_compileID(C->_compile_id);
|
event.set_compileId(C->_compile_id);
|
||||||
event.set_phaseLevel(level);
|
event.set_phaseLevel(level);
|
||||||
event.commit();
|
event.commit();
|
||||||
}
|
}
|
||||||
@ -748,7 +748,7 @@ class Compile : public Phase {
|
|||||||
if (event.should_commit()) {
|
if (event.should_commit()) {
|
||||||
event.set_starttime(C->_latest_stage_start_counter);
|
event.set_starttime(C->_latest_stage_start_counter);
|
||||||
event.set_phase((u1) PHASE_END);
|
event.set_phase((u1) PHASE_END);
|
||||||
event.set_compileID(C->_compile_id);
|
event.set_compileId(C->_compile_id);
|
||||||
event.set_phaseLevel(level);
|
event.set_phaseLevel(level);
|
||||||
event.commit();
|
event.commit();
|
||||||
}
|
}
|
||||||
|
@ -1047,7 +1047,7 @@ UNSAFE_ENTRY(void, Unsafe_Park(JNIEnv *env, jobject unsafe, jboolean isAbsolute,
|
|||||||
|
|
||||||
if (event.should_commit()) {
|
if (event.should_commit()) {
|
||||||
oop obj = thread->current_park_blocker();
|
oop obj = thread->current_park_blocker();
|
||||||
event.set_klass((obj != NULL) ? obj->klass() : NULL);
|
event.set_parkedClass((obj != NULL) ? obj->klass() : NULL);
|
||||||
event.set_timeout(time);
|
event.set_timeout(time);
|
||||||
event.set_address((obj != NULL) ? (TYPE_ADDRESS) cast_from_oop<uintptr_t>(obj) : 0);
|
event.set_address((obj != NULL) ? (TYPE_ADDRESS) cast_from_oop<uintptr_t>(obj) : 0);
|
||||||
event.commit();
|
event.commit();
|
||||||
|
@ -975,8 +975,8 @@ template<class E, class T>
|
|||||||
static void trace_flag_changed(const char* name, const T old_value, const T new_value, const Flag::Flags origin) {
|
static void trace_flag_changed(const char* name, const T old_value, const T new_value, const Flag::Flags origin) {
|
||||||
E e;
|
E e;
|
||||||
e.set_name(name);
|
e.set_name(name);
|
||||||
e.set_old_value(old_value);
|
e.set_oldValue(old_value);
|
||||||
e.set_new_value(new_value);
|
e.set_newValue(new_value);
|
||||||
e.set_origin(origin);
|
e.set_origin(origin);
|
||||||
e.commit();
|
e.commit();
|
||||||
}
|
}
|
||||||
|
@ -390,7 +390,7 @@ void ObjectMonitor::enter(TRAPS) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (event.should_commit()) {
|
if (event.should_commit()) {
|
||||||
event.set_klass(((oop)this->object())->klass());
|
event.set_monitorClass(((oop)this->object())->klass());
|
||||||
event.set_previousOwner((TYPE_THREAD)_previous_owner_tid);
|
event.set_previousOwner((TYPE_THREAD)_previous_owner_tid);
|
||||||
event.set_address((TYPE_ADDRESS)(uintptr_t)(this->object_addr()));
|
event.set_address((TYPE_ADDRESS)(uintptr_t)(this->object_addr()));
|
||||||
event.commit();
|
event.commit();
|
||||||
@ -1381,7 +1381,7 @@ void ObjectMonitor::post_monitor_wait_event(EventJavaMonitorWait* event,
|
|||||||
jlong timeout,
|
jlong timeout,
|
||||||
bool timedout) {
|
bool timedout) {
|
||||||
assert(event != NULL, "invariant");
|
assert(event != NULL, "invariant");
|
||||||
event->set_klass(((oop)this->object())->klass());
|
event->set_monitorClass(((oop)this->object())->klass());
|
||||||
event->set_timeout(timeout);
|
event->set_timeout(timeout);
|
||||||
event->set_address((TYPE_ADDRESS)this->object_addr());
|
event->set_address((TYPE_ADDRESS)this->object_addr());
|
||||||
event->set_notifier(notifier_tid);
|
event->set_notifier(notifier_tid);
|
||||||
|
@ -173,7 +173,7 @@ void SafepointSynchronize::begin() {
|
|||||||
// block itself when it attempts transitions to a new state.
|
// block itself when it attempts transitions to a new state.
|
||||||
//
|
//
|
||||||
{
|
{
|
||||||
EventSafepointStateSync sync_event;
|
EventSafepointStateSynchronization sync_event;
|
||||||
int initial_running = 0;
|
int initial_running = 0;
|
||||||
|
|
||||||
_state = _synchronizing;
|
_state = _synchronizing;
|
||||||
|
@ -485,7 +485,7 @@ void NMethodSweeper::sweep_code_cache() {
|
|||||||
if (event.should_commit()) {
|
if (event.should_commit()) {
|
||||||
event.set_starttime(sweep_start_counter);
|
event.set_starttime(sweep_start_counter);
|
||||||
event.set_endtime(sweep_end_counter);
|
event.set_endtime(sweep_end_counter);
|
||||||
event.set_sweepIndex(_traversals);
|
event.set_sweepId(_traversals);
|
||||||
event.set_sweptCount(swept_count);
|
event.set_sweptCount(swept_count);
|
||||||
event.set_flushedCount(flushed_count);
|
event.set_flushedCount(flushed_count);
|
||||||
event.set_zombifiedCount(zombified_count);
|
event.set_zombifiedCount(zombified_count);
|
||||||
|
@ -1819,7 +1819,7 @@ static void post_monitor_inflate_event(EventJavaMonitorInflate& event,
|
|||||||
const ObjectSynchronizer::InflateCause cause) {
|
const ObjectSynchronizer::InflateCause cause) {
|
||||||
#if INCLUDE_TRACE
|
#if INCLUDE_TRACE
|
||||||
assert(event.should_commit(), "check outside");
|
assert(event.should_commit(), "check outside");
|
||||||
event.set_klass(obj->klass());
|
event.set_monitorClass(obj->klass());
|
||||||
event.set_address((TYPE_ADDRESS)(uintptr_t)(void*)obj);
|
event.set_address((TYPE_ADDRESS)(uintptr_t)(void*)obj);
|
||||||
event.set_cause((u1)cause);
|
event.set_cause((u1)cause);
|
||||||
event.commit();
|
event.commit();
|
||||||
|
@ -32,7 +32,6 @@
|
|||||||
enum {
|
enum {
|
||||||
CONTENT_TYPE_NONE = 0,
|
CONTENT_TYPE_NONE = 0,
|
||||||
CONTENT_TYPE_CLASS = 20,
|
CONTENT_TYPE_CLASS = 20,
|
||||||
CONTENT_TYPE_UTF8 = 21,
|
|
||||||
CONTENT_TYPE_THREAD = 22,
|
CONTENT_TYPE_THREAD = 22,
|
||||||
CONTENT_TYPE_STACKTRACE = 23,
|
CONTENT_TYPE_STACKTRACE = 23,
|
||||||
CONTENT_TYPE_BYTES = 24,
|
CONTENT_TYPE_BYTES = 24,
|
||||||
|
@ -30,7 +30,6 @@ typedef u8 traceid;
|
|||||||
#define EVENT_THREAD_EXIT(thread)
|
#define EVENT_THREAD_EXIT(thread)
|
||||||
#define EVENT_THREAD_DESTRUCT(thread)
|
#define EVENT_THREAD_DESTRUCT(thread)
|
||||||
#define TRACE_KLASS_CREATION(k, p, t)
|
#define TRACE_KLASS_CREATION(k, p, t)
|
||||||
#define TRACE_KLASS_DEFINITION(k, t)
|
|
||||||
|
|
||||||
#define TRACE_INIT_KLASS_ID(k)
|
#define TRACE_INIT_KLASS_ID(k)
|
||||||
#define TRACE_REMOVE_KLASS_ID(k)
|
#define TRACE_REMOVE_KLASS_ID(k)
|
||||||
|
@ -76,35 +76,36 @@ Declares a structure type that can be used in other events.
|
|||||||
|
|
||||||
<event id="ThreadPark" path="java/thread_park" label="Java Thread Park"
|
<event id="ThreadPark" path="java/thread_park" label="Java Thread Park"
|
||||||
has_thread="true" has_stacktrace="true" is_instant="false">
|
has_thread="true" has_stacktrace="true" is_instant="false">
|
||||||
<value type="CLASS" field="klass" label="Class Parked On"/>
|
<value type="CLASS" field="parkedClass" label="Class Parked On"/>
|
||||||
<value type="MILLIS" field="timeout" label="Park Timeout"/>
|
<value type="MILLIS" field="timeout" label="Park Timeout"/>
|
||||||
<value type="ADDRESS" field="address" label="Address of Object Parked" relation="JAVA_MONITOR_ADDRESS"/>
|
<value type="ADDRESS" field="address" label="Address of Object Parked" relation="JavaMonitorAddress"/>
|
||||||
</event>
|
</event>
|
||||||
|
|
||||||
<event id="JavaMonitorEnter" path="java/monitor_enter" label="Java Monitor Blocked"
|
<event id="JavaMonitorEnter" path="java/monitor_enter" label="Java Monitor Blocked"
|
||||||
has_thread="true" has_stacktrace="true" is_instant="false">
|
has_thread="true" has_stacktrace="true" is_instant="false">
|
||||||
<value type="CLASS" field="klass" label="Monitor Class"/>
|
<value type="CLASS" field="monitorClass" label="Monitor Class"/>
|
||||||
<value type="THREAD" field="previousOwner" label="Previous Monitor Owner"/>
|
<value type="THREAD" field="previousOwner" label="Previous Monitor Owner"/>
|
||||||
<value type="ADDRESS" field="address" label="Monitor Address" relation="JAVA_MONITOR_ADDRESS"/>
|
<value type="ADDRESS" field="address" label="Monitor Address" relation="JavaMonitorAddress"/>
|
||||||
</event>
|
</event>
|
||||||
|
|
||||||
<event id="JavaMonitorWait" path="java/monitor_wait" label="Java Monitor Wait" description="Waiting on a Java monitor"
|
<event id="JavaMonitorWait" path="java/monitor_wait" label="Java Monitor Wait" description="Waiting on a Java monitor"
|
||||||
has_thread="true" has_stacktrace="true" is_instant="false">
|
has_thread="true" has_stacktrace="true" is_instant="false">
|
||||||
<value type="CLASS" field="klass" label="Monitor Class" description="Class of object waited on"/>
|
<value type="CLASS" field="monitorClass" label="Monitor Class" description="Class of object waited on"/>
|
||||||
<value type="THREAD" field="notifier" label="Notifier Thread" description="Notifying Thread"/>
|
<value type="THREAD" field="notifier" label="Notifier Thread" description="Notifying Thread"/>
|
||||||
<value type="MILLIS" field="timeout" label="Timeout" description="Maximum wait time"/>
|
<value type="MILLIS" field="timeout" label="Timeout" description="Maximum wait time"/>
|
||||||
<value type="BOOLEAN" field="timedOut" label="Timed Out" description="Wait has been timed out"/>
|
<value type="BOOLEAN" field="timedOut" label="Timed Out" description="Wait has been timed out"/>
|
||||||
<value type="ADDRESS" field="address" label="Monitor Address" description="Address of object waited on" relation="JAVA_MONITOR_ADDRESS"/>
|
<value type="ADDRESS" field="address" label="Monitor Address" description="Address of object waited on" relation="JavaMonitorAddress"/>
|
||||||
</event>
|
</event>
|
||||||
|
|
||||||
<event id="JavaMonitorInflate" path="java/monitor_inflate" label="Java Monitor Inflated"
|
<event id="JavaMonitorInflate" path="java/monitor_inflate" label="Java Monitor Inflated"
|
||||||
has_thread="true" has_stacktrace="true" is_instant="false">
|
has_thread="true" has_stacktrace="true" is_instant="false">
|
||||||
<value type="CLASS" field="klass" label="Monitor Class"/>
|
<value type="CLASS" field="monitorClass" label="Monitor Class"/>
|
||||||
<value type="ADDRESS" field="address" label="Monitor Address" relation="JAVA_MONITOR_ADDRESS"/>
|
<value type="ADDRESS" field="address" label="Monitor Address" relation="JavaMonitorAddress"/>
|
||||||
<value type="INFLATECAUSE" field="cause" label="Cause" description="Cause of inflation"/>
|
<value type="INFLATECAUSE" field="cause" label="Monitor Inflation Cause" description="Cause of inflation"/>
|
||||||
</event>
|
</event>
|
||||||
|
|
||||||
<event id="ReservedStackActivation" path="java/reserved_stack_activation" label="Reserved Stack Activation" description="Activation of Reserved Stack Area caused by stack overflow with ReservedStackAccess annotated method in call stack"
|
<event id="ReservedStackActivation" path="vm/runtime/reserved_stack_activation" label="Reserved Stack Activation"
|
||||||
|
description="Activation of Reserved Stack Area caused by stack overflow with ReservedStackAccess annotated method in call stack"
|
||||||
has_thread="true" has_stacktrace="true" is_instant="true">
|
has_thread="true" has_stacktrace="true" is_instant="true">
|
||||||
<value type="METHOD" field="method" label="Java Method"/>
|
<value type="METHOD" field="method" label="Java Method"/>
|
||||||
</event>
|
</event>
|
||||||
@ -130,57 +131,57 @@ Declares a structure type that can be used in other events.
|
|||||||
|
|
||||||
<event id="IntFlagChanged" path="vm/flag/int_changed" label="Int Flag Changed"
|
<event id="IntFlagChanged" path="vm/flag/int_changed" label="Int Flag Changed"
|
||||||
is_instant="true">
|
is_instant="true">
|
||||||
<value type="UTF8" field="name" label="Name" />
|
<value type="STRING" field="name" label="Name" />
|
||||||
<value type="INTEGER" field="old_value" label="Old Value" />
|
<value type="INTEGER" field="oldValue" label="Old Value" />
|
||||||
<value type="INTEGER" field="new_value" label="New Value" />
|
<value type="INTEGER" field="newValue" label="New Value" />
|
||||||
<value type="FLAGVALUEORIGIN" field="origin" label="Origin" />
|
<value type="FLAGVALUEORIGIN" field="origin" label="Origin" />
|
||||||
</event>
|
</event>
|
||||||
|
|
||||||
<event id="UnsignedIntFlagChanged" path="vm/flag/uint_changed" label="Unsigned Int Flag Changed"
|
<event id="UnsignedIntFlagChanged" path="vm/flag/uint_changed" label="Unsigned Int Flag Changed"
|
||||||
is_instant="true">
|
is_instant="true">
|
||||||
<value type="UTF8" field="name" label="Name" />
|
<value type="STRING" field="name" label="Name" />
|
||||||
<value type="UINT" field="old_value" label="Old Value" />
|
<value type="UINT" field="oldValue" label="Old Value" />
|
||||||
<value type="UINT" field="new_value" label="New Value" />
|
<value type="UINT" field="newValue" label="New Value" />
|
||||||
<value type="FLAGVALUEORIGIN" field="origin" label="Origin" />
|
<value type="FLAGVALUEORIGIN" field="origin" label="Origin" />
|
||||||
</event>
|
</event>
|
||||||
|
|
||||||
<event id="LongFlagChanged" path="vm/flag/long_changed" label="Long Flag Changed"
|
<event id="LongFlagChanged" path="vm/flag/long_changed" label="Long Flag Changed"
|
||||||
is_instant="true">
|
is_instant="true">
|
||||||
<value type="UTF8" field="name" label="Name" />
|
<value type="STRING" field="name" label="Name" />
|
||||||
<value type="LONG" field="old_value" label="Old Value" />
|
<value type="LONG" field="oldValue" label="Old Value" />
|
||||||
<value type="LONG" field="new_value" label="New Value" />
|
<value type="LONG" field="newValue" label="New Value" />
|
||||||
<value type="FLAGVALUEORIGIN" field="origin" label="Origin" />
|
<value type="FLAGVALUEORIGIN" field="origin" label="Origin" />
|
||||||
</event>
|
</event>
|
||||||
|
|
||||||
<event id="UnsignedLongFlagChanged" path="vm/flag/ulong_changed" label="Unsigned Long Flag Changed"
|
<event id="UnsignedLongFlagChanged" path="vm/flag/ulong_changed" label="Unsigned Long Flag Changed"
|
||||||
is_instant="true">
|
is_instant="true">
|
||||||
<value type="UTF8" field="name" label="Name" />
|
<value type="STRING" field="name" label="Name" />
|
||||||
<value type="ULONG" field="old_value" label="Old Value" />
|
<value type="ULONG" field="oldValue" label="Old Value" />
|
||||||
<value type="ULONG" field="new_value" label="New Value" />
|
<value type="ULONG" field="newValue" label="New Value" />
|
||||||
<value type="FLAGVALUEORIGIN" field="origin" label="Origin" />
|
<value type="FLAGVALUEORIGIN" field="origin" label="Origin" />
|
||||||
</event>
|
</event>
|
||||||
|
|
||||||
<event id="DoubleFlagChanged" path="vm/flag/double_changed" label="Double Flag Changed"
|
<event id="DoubleFlagChanged" path="vm/flag/double_changed" label="Double Flag Changed"
|
||||||
is_instant="true">
|
is_instant="true">
|
||||||
<value type="UTF8" field="name" label="Name" />
|
<value type="STRING" field="name" label="Name" />
|
||||||
<value type="DOUBLE" field="old_value" label="Old Value" />
|
<value type="DOUBLE" field="oldValue" label="Old Value" />
|
||||||
<value type="DOUBLE" field="new_value" label="New Value" />
|
<value type="DOUBLE" field="newValue" label="New Value" />
|
||||||
<value type="FLAGVALUEORIGIN" field="origin" label="Origin" />
|
<value type="FLAGVALUEORIGIN" field="origin" label="Origin" />
|
||||||
</event>
|
</event>
|
||||||
|
|
||||||
<event id="BooleanFlagChanged" path="vm/flag/boolean_changed" label="Boolean Flag Changed"
|
<event id="BooleanFlagChanged" path="vm/flag/boolean_changed" label="Boolean Flag Changed"
|
||||||
is_instant="true">
|
is_instant="true">
|
||||||
<value type="UTF8" field="name" label="Name" />
|
<value type="STRING" field="name" label="Name" />
|
||||||
<value type="BOOLEAN" field="old_value" label="Old Value" />
|
<value type="BOOLEAN" field="oldValue" label="Old Value" />
|
||||||
<value type="BOOLEAN" field="new_value" label="New Value" />
|
<value type="BOOLEAN" field="newValue" label="New Value" />
|
||||||
<value type="FLAGVALUEORIGIN" field="origin" label="Origin" />
|
<value type="FLAGVALUEORIGIN" field="origin" label="Origin" />
|
||||||
</event>
|
</event>
|
||||||
|
|
||||||
<event id="StringFlagChanged" path="vm/flag/string_changed" label="String Flag Changed"
|
<event id="StringFlagChanged" path="vm/flag/string_changed" label="String Flag Changed"
|
||||||
is_instant="true">
|
is_instant="true">
|
||||||
<value type="UTF8" field="name" label="Name" />
|
<value type="STRING" field="name" label="Name" />
|
||||||
<value type="UTF8" field="old_value" label="Old Value" />
|
<value type="STRING" field="oldValue" label="Old Value" />
|
||||||
<value type="UTF8" field="new_value" label="New Value" />
|
<value type="STRING" field="newValue" label="New Value" />
|
||||||
<value type="FLAGVALUEORIGIN" field="origin" label="Origin" />
|
<value type="FLAGVALUEORIGIN" field="origin" label="Origin" />
|
||||||
</event>
|
</event>
|
||||||
|
|
||||||
@ -200,7 +201,7 @@ Declares a structure type that can be used in other events.
|
|||||||
</struct>
|
</struct>
|
||||||
|
|
||||||
<event id="GCHeapSummary" path="vm/gc/heap/summary" label="Heap Summary" is_instant="true">
|
<event id="GCHeapSummary" path="vm/gc/heap/summary" label="Heap Summary" is_instant="true">
|
||||||
<value type="UINT" field="gcId" label="GC ID" relation="GC_ID"/>
|
<value type="UINT" field="gcId" label="GC Identifier" relation="GcId"/>
|
||||||
<value type="GCWHEN" field="when" label="When" />
|
<value type="GCWHEN" field="when" label="When" />
|
||||||
<structvalue type="VirtualSpace" field="heapSpace" label="Heap Space"/>
|
<structvalue type="VirtualSpace" field="heapSpace" label="Heap Space"/>
|
||||||
<value type="BYTES64" field="heapUsed" label="Heap Used" description="Bytes allocated by objects in the heap"/>
|
<value type="BYTES64" field="heapUsed" label="Heap Used" description="Bytes allocated by objects in the heap"/>
|
||||||
@ -213,7 +214,7 @@ Declares a structure type that can be used in other events.
|
|||||||
</struct>
|
</struct>
|
||||||
|
|
||||||
<event id="MetaspaceSummary" path="vm/gc/heap/metaspace_summary" label="Metaspace Summary" is_instant="true">
|
<event id="MetaspaceSummary" path="vm/gc/heap/metaspace_summary" label="Metaspace Summary" is_instant="true">
|
||||||
<value type="UINT" field="gcId" label="GC ID" relation="GC_ID"/>
|
<value type="UINT" field="gcId" label="GC Identifier" relation="GcId"/>
|
||||||
<value type="GCWHEN" field="when" label="When" />
|
<value type="GCWHEN" field="when" label="When" />
|
||||||
<value type="BYTES64" field="gcThreshold" label="GC Threshold" />
|
<value type="BYTES64" field="gcThreshold" label="GC Threshold" />
|
||||||
<structvalue type="MetaspaceSizes" field="metaspace" label="Total"/>
|
<structvalue type="MetaspaceSizes" field="metaspace" label="Total"/>
|
||||||
@ -244,7 +245,7 @@ Declares a structure type that can be used in other events.
|
|||||||
</event>
|
</event>
|
||||||
|
|
||||||
<event id="MetaspaceChunkFreeListSummary" path="vm/gc/metaspace/chunk_free_list_summary" label="Metaspace Chunk Free List Summary" is_instant="true">
|
<event id="MetaspaceChunkFreeListSummary" path="vm/gc/metaspace/chunk_free_list_summary" label="Metaspace Chunk Free List Summary" is_instant="true">
|
||||||
<value type="UINT" field="gcId" label="GC ID" relation="GC_ID"/>
|
<value type="UINT" field="gcId" label="GC Identifier" relation="GcId"/>
|
||||||
<value type="GCWHEN" field="when" label="When" />
|
<value type="GCWHEN" field="when" label="When" />
|
||||||
<value type="METADATATYPE" field="metadataType" label="Metadata Type" />
|
<value type="METADATATYPE" field="metadataType" label="Metadata Type" />
|
||||||
<value type="ULONG" field="specializedChunks" label="Specialized Chunks" />
|
<value type="ULONG" field="specializedChunks" label="Specialized Chunks" />
|
||||||
@ -258,7 +259,7 @@ Declares a structure type that can be used in other events.
|
|||||||
</event>
|
</event>
|
||||||
|
|
||||||
<event id="PSHeapSummary" path="vm/gc/heap/ps_summary" label="Parallel Scavenge Heap Summary" is_instant="true">
|
<event id="PSHeapSummary" path="vm/gc/heap/ps_summary" label="Parallel Scavenge Heap Summary" is_instant="true">
|
||||||
<value type="UINT" field="gcId" label="GC ID" relation="GC_ID"/>
|
<value type="UINT" field="gcId" label="GC Identifier" relation="GcId"/>
|
||||||
<value type="GCWHEN" field="when" label="When" />
|
<value type="GCWHEN" field="when" label="When" />
|
||||||
|
|
||||||
<structvalue type="VirtualSpace" field="oldSpace" label="Old Space"/>
|
<structvalue type="VirtualSpace" field="oldSpace" label="Old Space"/>
|
||||||
@ -271,7 +272,7 @@ Declares a structure type that can be used in other events.
|
|||||||
</event>
|
</event>
|
||||||
|
|
||||||
<event id="G1HeapSummary" path="vm/gc/heap/g1_summary" label="G1 Heap Summary" is_instant="true">
|
<event id="G1HeapSummary" path="vm/gc/heap/g1_summary" label="G1 Heap Summary" is_instant="true">
|
||||||
<value type="UINT" field="gcId" label="GC ID" relation="GC_ID"/>
|
<value type="UINT" field="gcId" label="GC Identifier" relation="GcId"/>
|
||||||
<value type="GCWHEN" field="when" label="When" />
|
<value type="GCWHEN" field="when" label="When" />
|
||||||
|
|
||||||
<value type="BYTES64" field="edenUsedSize" label="Eden Used Size" />
|
<value type="BYTES64" field="edenUsedSize" label="Eden Used Size" />
|
||||||
@ -280,53 +281,53 @@ Declares a structure type that can be used in other events.
|
|||||||
<value type="UINT" field="numberOfRegions" label="Number of Regions" />
|
<value type="UINT" field="numberOfRegions" label="Number of Regions" />
|
||||||
</event>
|
</event>
|
||||||
|
|
||||||
<event id="GCGarbageCollection" path="vm/gc/collector/garbage_collection" label="Garbage Collection"
|
<event id="GarbageCollection" path="vm/gc/collector/garbage_collection" label="Garbage Collection"
|
||||||
description="Garbage collection performed by the JVM">
|
description="Garbage collection performed by the JVM">
|
||||||
<value type="UINT" field="gcId" label="GC ID" relation="GC_ID" />
|
<value type="UINT" field="gcId" label="GC Identifier" relation="GcId" />
|
||||||
<value type="GCNAME" field="name" label="Name" description="The name of the Garbage Collector" />
|
<value type="GCNAME" field="name" label="Name" description="The name of the Garbage Collector" />
|
||||||
<value type="GCCAUSE" field="cause" label="Cause" description="The reason for triggering this Garbage Collection" />
|
<value type="GCCAUSE" field="cause" label="Cause" description="The reason for triggering this Garbage Collection" />
|
||||||
<value type="TICKSPAN" field="sumOfPauses" label="Sum of Pauses" description="Sum of all the times in which Java execution was paused during the garbage collection" />
|
<value type="TICKSPAN" field="sumOfPauses" label="Sum of Pauses" description="Sum of all the times in which Java execution was paused during the garbage collection" />
|
||||||
<value type="TICKSPAN" field="longestPause" label="Longest Pause" description="Longest individual pause during the garbage collection" />
|
<value type="TICKSPAN" field="longestPause" label="Longest Pause" description="Longest individual pause during the garbage collection" />
|
||||||
</event>
|
</event>
|
||||||
|
|
||||||
<event id="GCParallelOld" path="vm/gc/collector/parold_garbage_collection" label="Parallel Old Garbage Collection"
|
<event id="ParallelOldGarbageCollection" path="vm/gc/collector/parold_garbage_collection" label="Parallel Old Garbage Collection"
|
||||||
description="Extra information specific to Parallel Old Garbage Collections">
|
description="Extra information specific to Parallel Old Garbage Collections">
|
||||||
<value type="UINT" field="gcId" label="GC ID" relation="GC_ID" />
|
<value type="UINT" field="gcId" label="GC Identifier" relation="GcId" />
|
||||||
<value type="ADDRESS" field="densePrefix" label="Dense Prefix" description="The address of the dense prefix, used when compacting" />
|
<value type="ADDRESS" field="densePrefix" label="Dense Prefix" description="The address of the dense prefix, used when compacting" />
|
||||||
</event>
|
</event>
|
||||||
|
|
||||||
<event id="GCYoungGarbageCollection" path="vm/gc/collector/young_garbage_collection" label="Young Garbage Collection"
|
<event id="YoungGarbageCollection" path="vm/gc/collector/young_garbage_collection" label="Young Garbage Collection"
|
||||||
description="Extra information specific to Young Garbage Collections">
|
description="Extra information specific to Young Garbage Collections">
|
||||||
<value type="UINT" field="gcId" label="GC ID" relation="GC_ID" />
|
<value type="UINT" field="gcId" label="GC Identifier" relation="GcId" />
|
||||||
<value type="UINT" field="tenuringThreshold" label="Tenuring Threshold" />
|
<value type="UINT" field="tenuringThreshold" label="Tenuring Threshold" />
|
||||||
</event>
|
</event>
|
||||||
|
|
||||||
<event id="GCOldGarbageCollection" path="vm/gc/collector/old_garbage_collection" label="Old Garbage Collection"
|
<event id="OldGarbageCollection" path="vm/gc/collector/old_garbage_collection" label="Old Garbage Collection"
|
||||||
description="Extra information specific to Old Garbage Collections">
|
description="Extra information specific to Old Garbage Collections">
|
||||||
<value type="UINT" field="gcId" label="GC ID" relation="GC_ID"/>
|
<value type="UINT" field="gcId" label="GC Identifier" relation="GcId"/>
|
||||||
</event>
|
</event>
|
||||||
|
|
||||||
<event id="GCG1GarbageCollection" path="vm/gc/collector/g1_garbage_collection" label="G1 Garbage Collection"
|
<event id="G1GarbageCollection" path="vm/gc/collector/g1_garbage_collection" label="G1 Garbage Collection"
|
||||||
description="Extra information specific to G1 Garbage Collections">
|
description="Extra information specific to G1 Garbage Collections">
|
||||||
<value type="UINT" field="gcId" label="GC ID" relation="GC_ID"/>
|
<value type="UINT" field="gcId" label="GC Identifier" relation="GcId"/>
|
||||||
<value type="G1YCTYPE" field="type" label="Type" />
|
<value type="G1YCTYPE" field="type" label="Type" />
|
||||||
</event>
|
</event>
|
||||||
|
|
||||||
<event id="GCG1MMU" path="vm/gc/detailed/g1_mmu_info" label="G1 MMU Information" is_instant="true">
|
<event id="G1MMU" path="vm/gc/detailed/g1_mmu_info" label="G1 MMU Information" is_instant="true">
|
||||||
<value type="UINT" field="gcId" label="GC ID" relation="GC_ID"/>
|
<value type="UINT" field="gcId" label="GC Identifier" relation="GcId"/>
|
||||||
<value type="DOUBLE" field="timeSlice" label="Time slice used to calculate MMU"/>
|
<value type="DOUBLE" field="timeSlice" label="Time Slice" description="Time slice used to calculate MMU"/>
|
||||||
<value type="DOUBLE" field="gcTime" label="Time spent on GC during last time slice"/>
|
<value type="DOUBLE" field="gcTime" label="GC Time" description="Time spent on GC during last time slice"/>
|
||||||
<value type="DOUBLE" field="maxGcTime" label="Max time allowed to be spent on GC during last time slice"/>
|
<value type="DOUBLE" field="maxGcTime" label="Max GC Time" description="Max time allowed to be spent on GC during last time slice"/>
|
||||||
</event>
|
</event>
|
||||||
|
|
||||||
<event id="EvacuationInfo" path="vm/gc/detailed/evacuation_info" label="Evacuation Information" is_instant="true">
|
<event id="EvacuationInformation" path="vm/gc/detailed/evacuation_info" label="Evacuation Information" is_instant="true">
|
||||||
<value type="UINT" field="gcId" label="GC ID" relation="GC_ID"/>
|
<value type="UINT" field="gcId" label="GC Identifier" relation="GcId"/>
|
||||||
<value type="UINT" field="cSetRegions" label="Collection Set Regions"/>
|
<value type="UINT" field="cSetRegions" label="Collection Set Regions"/>
|
||||||
<value type="BYTES64" field="cSetUsedBefore" label="Collection Set Before" description="Memory usage before GC in the collection set regions"/>
|
<value type="BYTES64" field="cSetUsedBefore" label="Collection Set Before" description="Memory usage before GC in the collection set regions"/>
|
||||||
<value type="BYTES64" field="cSetUsedAfter" label="Collection Set After" description="Memory usage after GC in the collection set regions"/>
|
<value type="BYTES64" field="cSetUsedAfter" label="Collection Set After" description="Memory usage after GC in the collection set regions"/>
|
||||||
<value type="UINT" field="allocationRegions" label="Allocation Regions" description="Regions chosen as allocation regions during evacuation (includes survivors and old space regions)"/>
|
<value type="UINT" field="allocationRegions" label="Allocation Regions" description="Regions chosen as allocation regions during evacuation (includes survivors and old space regions)"/>
|
||||||
<value type="BYTES64" field="allocRegionsUsedBefore" label="Alloc Regions Before" description="Memory usage before GC in allocation regions"/>
|
<value type="BYTES64" field="allocationRegionsUsedBefore" label="Allocation Regions Before" description="Memory usage before GC in allocation regions"/>
|
||||||
<value type="BYTES64" field="allocRegionsUsedAfter" label="Alloc Regions After" description="Memory usage after GC in allocation regions"/>
|
<value type="BYTES64" field="allocationRegionsUsedAfter" label="Allocation Regions After" description="Memory usage after GC in allocation regions"/>
|
||||||
<value type="BYTES64" field="bytesCopied" label="Bytes Copied"/>
|
<value type="BYTES64" field="bytesCopied" label="Bytes Copied"/>
|
||||||
<value type="UINT" field="regionsFreed" label="Regions Freed"/>
|
<value type="UINT" field="regionsFreed" label="Regions Freed"/>
|
||||||
</event>
|
</event>
|
||||||
@ -334,7 +335,7 @@ Declares a structure type that can be used in other events.
|
|||||||
<event id="GCReferenceStatistics" path="vm/gc/reference/statistics"
|
<event id="GCReferenceStatistics" path="vm/gc/reference/statistics"
|
||||||
label="GC Reference Statistics" is_instant="true"
|
label="GC Reference Statistics" is_instant="true"
|
||||||
description="Total count of processed references during GC">
|
description="Total count of processed references during GC">
|
||||||
<value type="UINT" field="gcId" label="GC ID" relation="GC_ID"/>
|
<value type="UINT" field="gcId" label="GC Identifier" relation="GcId"/>
|
||||||
<value type="REFERENCETYPE" field="type" label="Type" />
|
<value type="REFERENCETYPE" field="type" label="Type" />
|
||||||
<value type="ULONG" field="count" label="Total Count" />
|
<value type="ULONG" field="count" label="Total Count" />
|
||||||
</event>
|
</event>
|
||||||
@ -347,14 +348,14 @@ Declares a structure type that can be used in other events.
|
|||||||
</struct>
|
</struct>
|
||||||
|
|
||||||
<event id="ObjectCountAfterGC" path="vm/gc/detailed/object_count_after_gc" is_instant="true" label="Object Count after GC">
|
<event id="ObjectCountAfterGC" path="vm/gc/detailed/object_count_after_gc" is_instant="true" label="Object Count after GC">
|
||||||
<value type="UINT" field="gcId" label="GC ID" relation="GC_ID" />
|
<value type="UINT" field="gcId" label="GC Identifier" relation="GcId" />
|
||||||
<value type="CLASS" field="class" label="Class" />
|
<value type="CLASS" field="objectClass" label="Object Class" />
|
||||||
<value type="LONG" field="count" label="Count" />
|
<value type="LONG" field="count" label="Count" />
|
||||||
<value type="BYTES64" field="totalSize" label="Total Size" />
|
<value type="BYTES64" field="totalSize" label="Total Size" />
|
||||||
</event>
|
</event>
|
||||||
|
|
||||||
<struct id="G1EvacStats">
|
<struct id="G1EvacuationStatistics">
|
||||||
<value type="UINT" field="gcId" label="GC ID" relation="GC_ID"/>
|
<value type="UINT" field="gcId" label="GC Identifier" relation="GcId"/>
|
||||||
<value type="BYTES64" field="allocated" label="Allocated" description="Total memory allocated by PLABs"/>
|
<value type="BYTES64" field="allocated" label="Allocated" description="Total memory allocated by PLABs"/>
|
||||||
<value type="BYTES64" field="wasted" label="Wasted" description="Total memory wasted within PLABs due to alignment or refill"/>
|
<value type="BYTES64" field="wasted" label="Wasted" description="Total memory wasted within PLABs due to alignment or refill"/>
|
||||||
<value type="BYTES64" field="used" label="Used" description="Total memory occupied by objects within PLABs"/>
|
<value type="BYTES64" field="used" label="Used" description="Total memory occupied by objects within PLABs"/>
|
||||||
@ -366,48 +367,48 @@ Declares a structure type that can be used in other events.
|
|||||||
<value type="BYTES64" field="failureWaste" label="Wasted (failure)" description="Total memory left unused in regions where evacuation failed"/>
|
<value type="BYTES64" field="failureWaste" label="Wasted (failure)" description="Total memory left unused in regions where evacuation failed"/>
|
||||||
</struct>
|
</struct>
|
||||||
|
|
||||||
<event id="GCG1EvacuationYoungStatistics" path="vm/gc/detailed/g1_evac_young_stats" label="G1 Evacuation Statistics for Young" is_instant="true"
|
<event id="G1EvacuationYoungStatistics" path="vm/gc/detailed/g1_evac_young_stats" label="G1 Evacuation Statistics for Young"
|
||||||
description="Memory related evacuation statistics during GC for the young generation">
|
is_instant="true" description="Memory related evacuation statistics during GC for the young generation">
|
||||||
<structvalue type="G1EvacStats" field="stats" label="Evacuation statistics"/>
|
<structvalue type="G1EvacuationStatistics" field="statistics" label="Evacuation Statistics"/>
|
||||||
</event>
|
</event>
|
||||||
|
|
||||||
<event id="GCG1EvacuationOldStatistics" path="vm/gc/detailed/g1_evac_old_stats" label="G1 Evacuation Memory Statistics for Old" is_instant="true"
|
<event id="G1EvacuationOldStatistics" path="vm/gc/detailed/g1_evac_old_stats" label="G1 Evacuation Memory Statistics for Old"
|
||||||
description="Memory related evacuation statistics during GC for the old generation">
|
is_instant="true" description="Memory related evacuation statistics during GC for the old generation">
|
||||||
<structvalue type="G1EvacStats" field="stats" label="Evacuation statistics"/>
|
<structvalue type="G1EvacuationStatistics" field="statistics" label="Evacuation Statistics"/>
|
||||||
</event>
|
</event>
|
||||||
|
|
||||||
<event id="GCG1BasicIHOP" path="vm/gc/detailed/g1_basic_ihop_status" label="G1 Basic IHOP statistics" is_instant="true"
|
<event id="G1BasicIHOP" path="vm/gc/detailed/g1_basic_ihop_status" label="G1 Basic IHOP statistics"
|
||||||
description="Basic statistics related to current IHOP calculation">
|
is_instant="true" description="Basic statistics related to current IHOP calculation">
|
||||||
<value type="UINT" field="gcId" label="GC ID" relation="GC_ID"/>
|
<value type="UINT" field="gcId" label="GC Identifier" relation="GcId"/>
|
||||||
<value type="BYTES64" field="threshold" label="Current IHOP threshold" description="Current IHOP threshold in bytes"/>
|
<value type="BYTES64" field="threshold" label="Current IHOP threshold" description="Current IHOP threshold in bytes"/>
|
||||||
<value type="PERCENTAGE" field="thresholdPercentage" label="Current IHOP threshold in percent" description="Current IHOP threshold in percent of old gen"/>
|
<value type="PERCENTAGE" field="thresholdPercentage" label="Current IHOP threshold in percent" description="Current IHOP threshold in percent of old gen"/>
|
||||||
<value type="BYTES64" field="targetOccupancy" label="Target occupancy" description="Target old gen occupancy to reach at the start of mixed GC in bytes"/>
|
<value type="BYTES64" field="targetOccupancy" label="Target Occupancy" description="Target old gen occupancy to reach at the start of mixed GC in bytes"/>
|
||||||
<value type="BYTES64" field="currentOccupancy" label="Current occupancy" description="Current old gen occupancy in bytes"/>
|
<value type="BYTES64" field="currentOccupancy" label="Current Occupancy" description="Current old generation occupancy in bytes"/>
|
||||||
<value type="BYTES64" field="lastAllocationSize" label="Last mutator allocation size" description="Mutator allocation during mutator operation since last GC in bytes"/>
|
<value type="BYTES64" field="lastAllocationSize" label="Last Mutator Allocation" description="Mutator allocation during mutator operation since last GC in bytes"/>
|
||||||
<value type="DOUBLE" field="lastAllocationDuration" label="Last mutator operation duration" description="Time the mutator ran since last GC in seconds"/>
|
<value type="DOUBLE" field="lastAllocationDuration" label="Last Mutator Operation" description="Time the mutator ran since last GC in seconds"/>
|
||||||
<value type="DOUBLE" field="lastAllocationRate" label="Last mutator allocation rate" description="Allocation rate of the mutator since last GC in bytes/second"/>
|
<value type="DOUBLE" field="lastAllocationRate" label="Last Mutator Allocation Rate" description="Allocation rate of the mutator since last GC in bytes/second"/>
|
||||||
<value type="DOUBLE" field="lastMarkingLength" label="Last mutator time from initial mark to first mixed GC" description="Last time from the end of the last initial mark to the first mixed GC in seconds"/>
|
<value type="DOUBLE" field="lastMarkingLength" label="Last Marking Length" description="Last time from the end of the last initial mark to the first mixed GC in seconds"/>
|
||||||
</event>
|
</event>
|
||||||
|
|
||||||
<event id="GCG1AdaptiveIHOP" path="vm/gc/detailed/g1_adaptive_ihop_status" label="G1 Adaptive IHOP statistics" is_instant="true"
|
<event id="G1AdaptiveIHOP" path="vm/gc/detailed/g1_adaptive_ihop_status" label="G1 Adaptive IHOP statistics"
|
||||||
description="Statistics related to current adaptive IHOP calculation">
|
is_instant="true" description="Statistics related to current adaptive IHOP calculation">
|
||||||
<value type="UINT" field="gcId" label="GC ID" relation="GC_ID"/>
|
<value type="UINT" field="gcId" label="GC Identifier" relation="GcId"/>
|
||||||
<value type="BYTES64" field="threshold" label="Current IHOP threshold" description="Current IHOP threshold in bytes"/>
|
<value type="BYTES64" field="threshold" label="Threshold" description="Current IHOP threshold in bytes"/>
|
||||||
<value type="PERCENTAGE" field="thresholdPercentage" label="Current IHOP threshold in percent" description="Current IHOP threshold in percent of the internal target occupancy"/>
|
<value type="PERCENTAGE" field="thresholdPercentage" label="Threshold Percentage" description="Current IHOP threshold in percent of the internal target occupancy"/>
|
||||||
<value type="BYTES64" field="internalTargetOccupancy" label="Target occupancy" description="Internal target old gen occupancy to reach at the start of mixed GC in bytes"/>
|
<value type="BYTES64" field="internalTargetOccupancy" label="Target Occupancy" description="Internal target old generation occupancy to reach at the start of mixed GC in bytes"/>
|
||||||
<value type="BYTES64" field="currentOccupancy" label="Current occupancy" description="Current old gen occupancy in bytes"/>
|
<value type="BYTES64" field="currentOccupancy" label="Current Occupancy" description="Current old generation occupancy in bytes"/>
|
||||||
<value type="BYTES64" field="additionalBufferSize" label="Additional buffer size" description="Additional buffer size in bytes"/>
|
<value type="BYTES64" field="additionalBufferSize" label="Additional Buffer" description="Additional buffer size in bytes"/>
|
||||||
<value type="DOUBLE" field="predictedAllocationRate" label="Predicted mutator allocation rate" description="Current predicted allocation rate for the mutator in bytes/second"/>
|
<value type="DOUBLE" field="predictedAllocationRate" label="Predicted Allocation Rate" description="Current predicted allocation rate for the mutator in bytes/second"/>
|
||||||
<value type="DOUBLE" field="predictedMarkingLength" label="Predicted time from initial mark to first mixed GC" description="Current predicted time from the end of the last initial mark to the first mixed GC in seconds"/>
|
<value type="DOUBLE" field="predictedMarkingLength" label="Predicted Marking Length" description="Current predicted time from the end of the last initial mark to the first mixed GC in seconds"/>
|
||||||
<value type="BOOLEAN" field="predictionActive" label="Prediction active" description="Indicates whether the adaptive IHOP prediction is active"/>
|
<value type="BOOLEAN" field="predictionActive" label="Prediction Active" description="Indicates whether the adaptive IHOP prediction is active"/>
|
||||||
</event>
|
</event>
|
||||||
|
|
||||||
<!-- Promotion events, Supported GCs are Parallel Scavange, G1 and CMS with Parallel New. -->
|
<!-- Promotion events, Supported GCs are Parallel Scavange, G1 and CMS with Parallel New. -->
|
||||||
<event id="PromoteObjectInNewPLAB" path="vm/gc/detailed/object_promotion_in_new_PLAB" label="Promotion in new PLAB"
|
<event id="PromoteObjectInNewPLAB" path="vm/gc/detailed/object_promotion_in_new_PLAB" label="Promotion in new PLAB"
|
||||||
description="Object survived scavenge and was copied to a new Promotion Local Allocation Buffer (PLAB). Supported GCs are Parallel Scavange, G1 and CMS with Parallel New. Due to promotion being done in parallel an object might be reported multiple times as the GC threads race to copy all objects."
|
description="Object survived scavenge and was copied to a new Promotion Local Allocation Buffer (PLAB). Supported GCs are Parallel Scavange, G1 and CMS with Parallel New. Due to promotion being done in parallel an object might be reported multiple times as the GC threads race to copy all objects."
|
||||||
has_thread="true" has_stacktrace="false" is_instant="true">
|
has_thread="true" has_stacktrace="false" is_instant="true">
|
||||||
<value type="UINT" field="gcId" label="GC ID" relation="GC_ID" description="ID of GC during which the object was promoted"/>
|
<value type="UINT" field="gcId" label="GC Identifier" relation="GcId" description="Identifier signifying GC during which the object was promoted"/>
|
||||||
<value type="CLASS" field="class" label="Class" description="Class of promoted object"/>
|
<value type="CLASS" field="objectClass" label="Object Class" description="Class of promoted object"/>
|
||||||
<value type="BYTES64" field="objectSize" label="Object Size" description="Size of promoted object"/>
|
<value type="BYTES64" field="objectSize" label="Object Size" description="Size of promoted object"/>
|
||||||
<value type="UINT" field="tenuringAge" label="Object Tenuring Age" description="Tenuring age of a surviving object before being copied. The tenuring age of an object is a value between 0-15 and is incremented each scavange the object survives. Newly allocated objects have tenuring age 0."/>
|
<value type="UINT" field="tenuringAge" label="Object Tenuring Age" description="Tenuring age of a surviving object before being copied. The tenuring age of an object is a value between 0-15 and is incremented each scavange the object survives. Newly allocated objects have tenuring age 0."/>
|
||||||
<value type="BOOLEAN" field="tenured" label="Tenured" description="True if object was promoted to Old space, otherwise the object was aged and copied to a Survivor space"/>
|
<value type="BOOLEAN" field="tenured" label="Tenured" description="True if object was promoted to Old space, otherwise the object was aged and copied to a Survivor space"/>
|
||||||
@ -417,8 +418,8 @@ Declares a structure type that can be used in other events.
|
|||||||
<event id="PromoteObjectOutsidePLAB" path="vm/gc/detailed/object_promotion_outside_PLAB" label="Promotion outside PLAB"
|
<event id="PromoteObjectOutsidePLAB" path="vm/gc/detailed/object_promotion_outside_PLAB" label="Promotion outside PLAB"
|
||||||
description="Object survived scavenge and was copied directly to the heap. Supported GCs are Parallel Scavange, G1 and CMS with Parallel New. Due to promotion being done in parallel an object might be reported multiple times as the GC threads race to copy all objects."
|
description="Object survived scavenge and was copied directly to the heap. Supported GCs are Parallel Scavange, G1 and CMS with Parallel New. Due to promotion being done in parallel an object might be reported multiple times as the GC threads race to copy all objects."
|
||||||
has_thread="true" has_stacktrace="false" is_instant="true">
|
has_thread="true" has_stacktrace="false" is_instant="true">
|
||||||
<value type="UINT" field="gcId" label="GC ID" relation="GC_ID" description="ID of GC during which the object was promoted"/>
|
<value type="UINT" field="gcId" label="GC Identifier" relation="GcId" description="Identifier signifying GC during which the object was promoted"/>
|
||||||
<value type="CLASS" field="class" label="Class" description="Class of promoted object"/>
|
<value type="CLASS" field="objectClass" label="Object Class" description="Class of promoted object"/>
|
||||||
<value type="BYTES64" field="objectSize" label="Object Size" description="Size of promoted object"/>
|
<value type="BYTES64" field="objectSize" label="Object Size" description="Size of promoted object"/>
|
||||||
<value type="UINT" field="tenuringAge" label="Object Tenuring Age" description="Tenuring age of a surviving object before being copied. The tenuring age of an object is a value between 0-15 and is incremented each scavange the object survives. Newly allocated objects have tenuring age 0."/>
|
<value type="UINT" field="tenuringAge" label="Object Tenuring Age" description="Tenuring age of a surviving object before being copied. The tenuring age of an object is a value between 0-15 and is incremented each scavange the object survives. Newly allocated objects have tenuring age 0."/>
|
||||||
<value type="BOOLEAN" field="tenured" label="Tenured" description="True if object was promoted to Old space, otherwise the object was aged and copied to a Survivor space"/>
|
<value type="BOOLEAN" field="tenured" label="Tenured" description="True if object was promoted to Old space, otherwise the object was aged and copied to a Survivor space"/>
|
||||||
@ -426,73 +427,68 @@ Declares a structure type that can be used in other events.
|
|||||||
|
|
||||||
<event id="PromotionFailed" path="vm/gc/detailed/promotion_failed" label="Promotion Failed" is_instant="true"
|
<event id="PromotionFailed" path="vm/gc/detailed/promotion_failed" label="Promotion Failed" is_instant="true"
|
||||||
description="Promotion of an object failed">
|
description="Promotion of an object failed">
|
||||||
<value type="UINT" field="gcId" label="GC ID" relation="GC_ID"/>
|
<value type="UINT" field="gcId" label="GC Identifier" relation="GcId"/>
|
||||||
<structvalue type="CopyFailed" field="data" label="Data"/>
|
<structvalue type="CopyFailed" field="promotionFailed" label="Promotion Failed Data"/>
|
||||||
<value type="THREAD" field="thread" label="Running thread"/>
|
<value type="THREAD" field="thread" label="Running thread"/>
|
||||||
</event>
|
</event>
|
||||||
|
|
||||||
<event id="EvacuationFailed" path="vm/gc/detailed/evacuation_failed" label="Evacuation Failed" is_instant="true"
|
<event id="EvacuationFailed" path="vm/gc/detailed/evacuation_failed" label="Evacuation Failed" is_instant="true"
|
||||||
description="Evacuation of an object failed">
|
description="Evacuation of an object failed">
|
||||||
<value type="UINT" field="gcId" label="GC ID" relation="GC_ID"/>
|
<value type="UINT" field="gcId" label="GC Identifier" relation="GcId"/>
|
||||||
<structvalue type="CopyFailed" field="data" label="Data"/>
|
<structvalue type="CopyFailed" field="evacuationFailed" label="Evacuation Failed Data"/>
|
||||||
</event>
|
</event>
|
||||||
|
|
||||||
<event id="ConcurrentModeFailure" path="vm/gc/detailed/concurrent_mode_failure" label="Concurrent Mode Failure"
|
<event id="ConcurrentModeFailure" path="vm/gc/detailed/concurrent_mode_failure" label="Concurrent Mode Failure"
|
||||||
is_instant="true" description="Concurrent Mode failed">
|
is_instant="true" description="Concurrent Mode failed">
|
||||||
<value type="UINT" field="gcId" label="GC ID" relation="GC_ID"/>
|
<value type="UINT" field="gcId" label="GC Identifier" relation="GcId"/>
|
||||||
</event>
|
</event>
|
||||||
|
|
||||||
<event id="GCPhasePause" path="vm/gc/phases/pause" label="GC Phase Pause" has_thread="true">
|
<event id="GCPhasePause" path="vm/gc/phases/pause" label="GC Phase Pause" has_thread="true">
|
||||||
<value type="UINT" field="gcId" label="GC ID" relation="GC_ID"/>
|
<value type="UINT" field="gcId" label="GC Identifier" relation="GcId"/>
|
||||||
<value type="UTF8" field="name" label="Name" />
|
<value type="STRING" field="name" label="Name" />
|
||||||
</event>
|
</event>
|
||||||
|
|
||||||
<event id="GCPhasePauseLevel1" path="vm/gc/phases/pause_level_1" label="GC Phase Pause Level 1" has_thread="true">
|
<event id="GCPhasePauseLevel1" path="vm/gc/phases/pause_level_1" label="GC Phase Pause Level 1" has_thread="true">
|
||||||
<value type="UINT" field="gcId" label="GC ID" relation="GC_ID"/>
|
<value type="UINT" field="gcId" label="GC Identifier" relation="GcId"/>
|
||||||
<value type="UTF8" field="name" label="Name" />
|
<value type="STRING" field="name" label="Name" />
|
||||||
</event>
|
</event>
|
||||||
|
|
||||||
<event id="GCPhasePauseLevel2" path="vm/gc/phases/pause_level_2" label="GC Phase Pause Level 2" has_thread="true">
|
<event id="GCPhasePauseLevel2" path="vm/gc/phases/pause_level_2" label="GC Phase Pause Level 2" has_thread="true">
|
||||||
<value type="UINT" field="gcId" label="GC ID" relation="GC_ID"/>
|
<value type="UINT" field="gcId" label="GC Identifier" relation="GcId"/>
|
||||||
<value type="UTF8" field="name" label="Name" />
|
<value type="STRING" field="name" label="Name" />
|
||||||
</event>
|
</event>
|
||||||
|
|
||||||
<event id="GCPhasePauseLevel3" path="vm/gc/phases/pause_level_3" label="GC Phase Pause Level 3" has_thread="true">
|
<event id="GCPhasePauseLevel3" path="vm/gc/phases/pause_level_3" label="GC Phase Pause Level 3" has_thread="true">
|
||||||
<value type="UINT" field="gcId" label="GC ID" relation="GC_ID"/>
|
<value type="UINT" field="gcId" label="GC Identifier" relation="GcId"/>
|
||||||
<value type="UTF8" field="name" label="Name" />
|
<value type="STRING" field="name" label="Name" />
|
||||||
</event>
|
</event>
|
||||||
|
|
||||||
<event id="GCPhaseConcurrent" path="vm/gc/phases/concurrent" label="GC Phase Concurrent" has_thread="true">
|
<event id="GCPhaseConcurrent" path="vm/gc/phases/concurrent" label="GC Phase Concurrent" has_thread="true">
|
||||||
<value type="UINT" field="gcId" label="GC ID" relation="GC_ID"/>
|
<value type="UINT" field="gcId" label="GC Identifier" relation="GcId"/>
|
||||||
<value type="UTF8" field="name" label="Name" />
|
<value type="STRING" field="name" label="Name" />
|
||||||
</event>
|
</event>
|
||||||
|
|
||||||
<event id="AllocationRequiringGC" path="vm/gc/detailed/allocation_requiring_gc" label="Allocation Requiring GC"
|
<event id="AllocationRequiringGC" path="vm/gc/detailed/allocation_requiring_gc" label="Allocation Requiring GC"
|
||||||
has_thread="true" has_stacktrace="true" is_instant="true">
|
has_thread="true" has_stacktrace="true" is_instant="true">
|
||||||
<value type="UINT" field="gcId" label="Pending GC ID" relation="GC_ID" />
|
<value type="UINT" field="gcId" label="Pending GC Identifier" relation="GcId" />
|
||||||
<value type="BYTES64" field="size" label="Allocation Size" />
|
<value type="BYTES64" field="size" label="Allocation Size" />
|
||||||
</event>
|
</event>
|
||||||
|
|
||||||
<event id="TenuringDistribution" path="vm/gc/detailed/tenuring_distribution" label="Tenuring Distribution"
|
<event id="TenuringDistribution" path="vm/gc/detailed/tenuring_distribution" label="Tenuring Distribution"
|
||||||
is_instant="true">
|
is_instant="true">
|
||||||
<value type="UINT" field="gcId" label="GC ID" relation="GC_ID"/>
|
<value type="UINT" field="gcId" label="GC Identifier" relation="GcId"/>
|
||||||
<value type="UINT" field="age" label="Age" />
|
<value type="UINT" field="age" label="Age" />
|
||||||
<value type="BYTES64" field="size" label="Size" />
|
<value type="BYTES64" field="size" label="Size" />
|
||||||
</event>
|
</event>
|
||||||
|
|
||||||
<event id="G1HeapRegionTypeChange" path="vm/gc/detailed/g1_heap_region_type_change" label="G1 Heap Region Type Change"
|
<event id="G1HeapRegionTypeChange" path="vm/gc/detailed/g1_heap_region_type_change" label="G1 Heap Region Type Change"
|
||||||
description="Information about a G1 heap region type change." is_instant="true">
|
description="Information about a G1 heap region type change" is_instant="true">
|
||||||
<value type="UINT" field="index" label="Index" />
|
<value type="UINT" field="index" label="Index" />
|
||||||
<value type="G1HEAPREGIONTYPE" field="from" label="From Type" />
|
<value type="G1HEAPREGIONTYPE" field="from" label="From" />
|
||||||
<value type="G1HEAPREGIONTYPE" field="to" label="To Type" />
|
<value type="G1HEAPREGIONTYPE" field="to" label="To" />
|
||||||
<value type="ADDRESS" field="start" label="Start" />
|
<value type="ADDRESS" field="start" label="Start" />
|
||||||
<value type="BYTES64" field="used" label="Used" />
|
<value type="BYTES64" field="used" label="Used" />
|
||||||
<value type="UINT" field="allocContext" label="Allocation Context" />
|
<value type="UINT" field="allocationContext" label="Allocation Context" />
|
||||||
</event>
|
|
||||||
|
|
||||||
<event id="VMError" path="vm/runtime/vm_error" label="VM Error"
|
|
||||||
description="VM shutdown due to an error" has_stacktrace="true" has_thread="true">
|
|
||||||
<value type="BOOLEAN" field="out_of_java_memory" label="Java Out Of Memory"/>
|
|
||||||
</event>
|
</event>
|
||||||
|
|
||||||
<!-- Compiler events -->
|
<!-- Compiler events -->
|
||||||
@ -500,7 +496,7 @@ Declares a structure type that can be used in other events.
|
|||||||
<event id="Compilation" path="vm/compiler/compilation" label="Compilation"
|
<event id="Compilation" path="vm/compiler/compilation" label="Compilation"
|
||||||
has_thread="true" is_requestable="false" is_constant="false">
|
has_thread="true" is_requestable="false" is_constant="false">
|
||||||
<value type="METHOD" field="method" label="Java Method"/>
|
<value type="METHOD" field="method" label="Java Method"/>
|
||||||
<value type="UINT" field="compileID" label="Compilation ID" relation="COMP_ID"/>
|
<value type="UINT" field="compileId" label="Compilation Identifier" relation="CompileId"/>
|
||||||
<value type="USHORT" field="compileLevel" label="Compilation Level"/>
|
<value type="USHORT" field="compileLevel" label="Compilation Level"/>
|
||||||
<value type="BOOLEAN" field="succeded" label="Succeeded"/>
|
<value type="BOOLEAN" field="succeded" label="Succeeded"/>
|
||||||
<value type="BOOLEAN" field="isOsr" label="On Stack Replacement"/>
|
<value type="BOOLEAN" field="isOsr" label="On Stack Replacement"/>
|
||||||
@ -511,29 +507,29 @@ Declares a structure type that can be used in other events.
|
|||||||
<event id="CompilerPhase" path="vm/compiler/phase" label="Compiler Phase"
|
<event id="CompilerPhase" path="vm/compiler/phase" label="Compiler Phase"
|
||||||
has_thread="true" is_requestable="false" is_constant="false">
|
has_thread="true" is_requestable="false" is_constant="false">
|
||||||
<value type="COMPILERPHASETYPE" field="phase" label="Compile Phase"/>
|
<value type="COMPILERPHASETYPE" field="phase" label="Compile Phase"/>
|
||||||
<value type="UINT" field="compileID" label="Compilation ID" relation="COMP_ID"/>
|
<value type="UINT" field="compileId" label="Compilation Identifier" relation="CompileId"/>
|
||||||
<value type="USHORT" field="phaseLevel" label="Phase Level"/>
|
<value type="USHORT" field="phaseLevel" label="Phase Level"/>
|
||||||
</event>
|
</event>
|
||||||
|
|
||||||
<event id="CompilerFailure" path="vm/compiler/failure" label="Compilation Failure"
|
<event id="CompilationFailure" path="vm/compiler/failure" label="Compilation Failure"
|
||||||
has_thread="true" is_requestable="false" is_constant="false" is_instant="true">
|
has_thread="true" is_requestable="false" is_constant="false" is_instant="true">
|
||||||
<value type="UTF8" field="failure" label="Message"/>
|
<value type="STRING" field="failureMessage" label="Failure Message"/>
|
||||||
<value type="UINT" field="compileID" label="Compilation ID" relation="COMP_ID"/>
|
<value type="UINT" field="compileId" label="Compilation Identifier" relation="CompileId"/>
|
||||||
</event>
|
</event>
|
||||||
|
|
||||||
<struct id="CiMethod">
|
<struct id="CalleeMethod">
|
||||||
<value type="UTF8" field="class" label="Class name"/>
|
<value type="STRING" field="type" label="Class"/>
|
||||||
<value type="UTF8" field="name" label="Method name"/>
|
<value type="STRING" field="name" label="Method Name"/>
|
||||||
<value type="UTF8" field="signature" label="Method signature"/>
|
<value type="STRING" field="descriptor" label="Method Descriptor"/>
|
||||||
</struct>
|
</struct>
|
||||||
|
|
||||||
<event id="CompilerInlining" path="vm/compiler/optimization/inlining" label="Method Inlining"
|
<event id="CompilerInlining" path="vm/compiler/optimization/inlining" label="Method Inlining"
|
||||||
has_thread="true" is_instant="true">
|
has_thread="true" is_instant="true">
|
||||||
<value type="UINT" field="compileID" label="Compilation ID" relation="COMP_ID"/>
|
<value type="UINT" field="compileId" label="Compilation Identifier" relation="CompileId"/>
|
||||||
<value type="METHOD" field="caller" label="Caller Method"/>
|
<value type="METHOD" field="caller" label="Caller Method"/>
|
||||||
<structvalue type="CiMethod" field="callee" label="Callee Method"/>
|
<structvalue type="CalleeMethod" field="callee" label="Callee Method"/>
|
||||||
<value type="BOOLEAN" field="succeeded" label="Succeeded"/>
|
<value type="BOOLEAN" field="succeeded" label="Succeeded"/>
|
||||||
<value type="UTF8" field="message" label="Message"/>
|
<value type="STRING" field="message" label="Message"/>
|
||||||
<value type="INTEGER" field="bci" label="Byte Code Index"/>
|
<value type="INTEGER" field="bci" label="Byte Code Index"/>
|
||||||
</event>
|
</event>
|
||||||
|
|
||||||
@ -541,7 +537,7 @@ Declares a structure type that can be used in other events.
|
|||||||
|
|
||||||
<event id="SweepCodeCache" path="vm/code_sweeper/sweep" label="Sweep Code Cache"
|
<event id="SweepCodeCache" path="vm/code_sweeper/sweep" label="Sweep Code Cache"
|
||||||
has_thread="true" is_requestable="false" is_constant="false">
|
has_thread="true" is_requestable="false" is_constant="false">
|
||||||
<value type="INTEGER" field="sweepIndex" label="Sweep Index" relation="SWEEP_ID"/>
|
<value type="INTEGER" field="sweepId" label="Sweep Identifier" relation="SweepId"/>
|
||||||
<value type="UINT" field="sweptCount" label="Methods Swept"/>
|
<value type="UINT" field="sweptCount" label="Methods Swept"/>
|
||||||
<value type="UINT" field="flushedCount" label="Methods Flushed"/>
|
<value type="UINT" field="flushedCount" label="Methods Flushed"/>
|
||||||
<value type="UINT" field="zombifiedCount" label="Methods Zombified"/>
|
<value type="UINT" field="zombifiedCount" label="Methods Zombified"/>
|
||||||
@ -564,14 +560,14 @@ Declares a structure type that can be used in other events.
|
|||||||
|
|
||||||
<event id="SafepointBegin" path="vm/runtime/safepoint/begin" label="Safepoint Begin"
|
<event id="SafepointBegin" path="vm/runtime/safepoint/begin" label="Safepoint Begin"
|
||||||
description="Safepointing begin" has_thread="true">
|
description="Safepointing begin" has_thread="true">
|
||||||
<value type="INTEGER" field="safepointId" label="Safepoint ID" relation="SAFEPOINT_ID"/>
|
<value type="INTEGER" field="safepointId" label="Safepoint Identifier" relation="SafepointId"/>
|
||||||
<value type="INTEGER" field="totalThreadCount" label="Total Threads" description="The total number of threads at the start of safe point"/>
|
<value type="INTEGER" field="totalThreadCount" label="Total Threads" description="The total number of threads at the start of safe point"/>
|
||||||
<value type="INTEGER" field="jniCriticalThreadCount" label="JNI Critical Threads" description="The number of threads in JNI critical sections"/>
|
<value type="INTEGER" field="jniCriticalThreadCount" label="JNI Critical Threads" description="The number of threads in JNI critical sections"/>
|
||||||
</event>
|
</event>
|
||||||
|
|
||||||
<event id="SafepointStateSync" path="vm/runtime/safepoint/statesync" label="Safepoint State Sync"
|
<event id="SafepointStateSynchronization" path="vm/runtime/safepoint/statesync" label="Safepoint State Synchronization"
|
||||||
description="Synchronize run state of threads" has_thread="true">
|
description="Synchronize run state of threads" has_thread="true">
|
||||||
<value type="INTEGER" field="safepointId" label="Safepoint ID" relation="SAFEPOINT_ID"/>
|
<value type="INTEGER" field="safepointId" label="Safepoint Identifier" relation="SafepointId"/>
|
||||||
<value type="INTEGER" field="initialThreadCount" label="Initial Threads" description="The number of threads running at the beginning of state check"/>
|
<value type="INTEGER" field="initialThreadCount" label="Initial Threads" description="The number of threads running at the beginning of state check"/>
|
||||||
<value type="INTEGER" field="runningThreadCount" label="Running Threads" description="The number of threads still running"/>
|
<value type="INTEGER" field="runningThreadCount" label="Running Threads" description="The number of threads still running"/>
|
||||||
<value type="INTEGER" field="iterations" label="Iterations" description="Number of state check iterations"/>
|
<value type="INTEGER" field="iterations" label="Iterations" description="Number of state check iterations"/>
|
||||||
@ -579,46 +575,46 @@ Declares a structure type that can be used in other events.
|
|||||||
|
|
||||||
<event id="SafepointWaitBlocked" path="vm/runtime/safepoint/waitblocked" label="Safepoint Wait Blocked"
|
<event id="SafepointWaitBlocked" path="vm/runtime/safepoint/waitblocked" label="Safepoint Wait Blocked"
|
||||||
description="Safepointing begin waiting on running threads to block" has_thread="true">
|
description="Safepointing begin waiting on running threads to block" has_thread="true">
|
||||||
<value type="INTEGER" field="safepointId" label="Safepoint ID" relation="SAFEPOINT_ID"/>
|
<value type="INTEGER" field="safepointId" label="Safepoint Identifier" relation="SafepointId"/>
|
||||||
<value type="INTEGER" field="runningThreadCount" label="Running Threads" description="The number running of threads wait for safe point"/>
|
<value type="INTEGER" field="runningThreadCount" label="Running Threads" description="The number running of threads wait for safe point"/>
|
||||||
</event>
|
</event>
|
||||||
|
|
||||||
<event id="SafepointCleanup" path="vm/runtime/safepoint/cleanup" label="Safepoint Cleanup"
|
<event id="SafepointCleanup" path="vm/runtime/safepoint/cleanup" label="Safepoint Cleanup"
|
||||||
description="Safepointing begin running cleanup tasks" has_thread="true">
|
description="Safepointing begin running cleanup tasks" has_thread="true">
|
||||||
<value type="INTEGER" field="safepointId" label="Safepoint ID" relation="SAFEPOINT_ID"/>
|
<value type="INTEGER" field="safepointId" label="Safepoint Identifier" relation="SafepointId"/>
|
||||||
</event>
|
</event>
|
||||||
|
|
||||||
<event id="SafepointCleanupTask" path="vm/runtime/safepoint/cleanuptask" label="Safepoint Cleanup Task"
|
<event id="SafepointCleanupTask" path="vm/runtime/safepoint/cleanuptask" label="Safepoint Cleanup Task"
|
||||||
description="Safepointing begin running cleanup tasks" has_thread="true">
|
description="Safepointing begin running cleanup tasks" has_thread="true">
|
||||||
<value type="INTEGER" field="safepointId" label="Safepoint ID" relation="SAFEPOINT_ID"/>
|
<value type="INTEGER" field="safepointId" label="Safepoint Identifier" relation="SafepointId"/>
|
||||||
<value type="UTF8" field="name" label="Task Name" description="The task name"/>
|
<value type="STRING" field="name" label="Task Name" description="The task name"/>
|
||||||
</event>
|
</event>
|
||||||
|
|
||||||
<event id="SafepointEnd" path="vm/runtime/safepoint/end" label="Safepoint End"
|
<event id="SafepointEnd" path="vm/runtime/safepoint/end" label="Safepoint End"
|
||||||
description="Safepointing end" has_thread="true">
|
description="Safepointing end" has_thread="true">
|
||||||
<value type="INTEGER" field="safepointId" label="Safepoint ID" relation="SAFEPOINT_ID"/>
|
<value type="INTEGER" field="safepointId" label="Safepoint Identifier" relation="SafepointId"/>
|
||||||
</event>
|
</event>
|
||||||
|
|
||||||
<event id="ExecuteVMOperation" path="vm/runtime/execute_vm_operation" label="VM Operation"
|
<event id="ExecuteVMOperation" path="vm/runtime/execute_vm_operation" label="VM Operation"
|
||||||
description="Execution of a VM Operation" has_thread="true">
|
description="Execution of a VM Operation" has_thread="true">
|
||||||
<value type="VMOPERATIONTYPE" field="operation" label="Operation" />
|
<value type="VMOPERATIONTYPE" field="operation" label="Operation" />
|
||||||
<value type="BOOLEAN" field="safepoint" label="At Safepoint" description="If the operation occured at a safepoint."/>
|
<value type="BOOLEAN" field="safepoint" label="At Safepoint" description="If the operation occured at a safepoint"/>
|
||||||
<value type="BOOLEAN" field="blocking" label="Caller Blocked" description="If the calling thread was blocked until the operation was complete."/>
|
<value type="BOOLEAN" field="blocking" label="Caller Blocked" description="If the calling thread was blocked until the operation was complete"/>
|
||||||
<value type="THREAD" field="caller" label="Caller" transition="FROM" description="Thread requesting operation. If non-blocking, will be set to 0 indicating thread is unknown."/>
|
<value type="THREAD" field="caller" label="Caller" transition="FROM" description="Thread requesting operation. If non-blocking, will be set to 0 indicating thread is unknown"/>
|
||||||
<value type="INTEGER" field="safepointId" label="Safepoint ID" description="The safepoint (if any) under which this operation was completed." relation="SAFEPOINT_ID"/>
|
<value type="INTEGER" field="safepointId" label="Safepoint Identifier" description="The safepoint (if any) under which this operation was completed" relation="SafepointId"/>
|
||||||
</event>
|
</event>
|
||||||
|
|
||||||
<!-- Allocation events -->
|
<!-- Allocation events -->
|
||||||
<event id="AllocObjectInNewTLAB" path="java/object_alloc_in_new_TLAB" label="Allocation in new TLAB"
|
<event id="ObjectAllocationInNewTLAB" path="java/object_alloc_in_new_TLAB" label="Allocation in new TLAB"
|
||||||
description="Allocation in new Thread Local Allocation Buffer" has_thread="true" has_stacktrace="true" is_instant="true">
|
description="Allocation in new Thread Local Allocation Buffer" has_thread="true" has_stacktrace="true" is_instant="true">
|
||||||
<value type="CLASS" field="class" label="Class" description="Class of allocated object"/>
|
<value type="CLASS" field="objectClass" label="Object Class" description="Class of allocated object"/>
|
||||||
<value type="BYTES64" field="allocationSize" label="Allocation Size"/>
|
<value type="BYTES64" field="allocationSize" label="Allocation Size"/>
|
||||||
<value type="BYTES64" field="tlabSize" label="TLAB Size"/>
|
<value type="BYTES64" field="tlabSize" label="TLAB Size"/>
|
||||||
</event>
|
</event>
|
||||||
|
|
||||||
<event id="AllocObjectOutsideTLAB" path="java/object_alloc_outside_TLAB" label="Allocation outside TLAB"
|
<event id="ObjectAllocationOutsideTLAB" path="java/object_alloc_outside_TLAB" label="Allocation outside TLAB"
|
||||||
description="Allocation outside Thread Local Allocation Buffers" has_thread="true" has_stacktrace="true" is_instant="true">
|
description="Allocation outside Thread Local Allocation Buffers" has_thread="true" has_stacktrace="true" is_instant="true">
|
||||||
<value type="CLASS" field="class" label="Class" description="Class of allocated object"/>
|
<value type="CLASS" field="objectClass" label="Object Class" description="Class of allocated object"/>
|
||||||
<value type="BYTES64" field="allocationSize" label="Allocation Size"/>
|
<value type="BYTES64" field="allocationSize" label="Allocation Size"/>
|
||||||
</event>
|
</event>
|
||||||
</events>
|
</events>
|
||||||
|
@ -27,9 +27,9 @@
|
|||||||
<!DOCTYPE relation_decls SYSTEM "trace.dtd">
|
<!DOCTYPE relation_decls SYSTEM "trace.dtd">
|
||||||
|
|
||||||
<relation_decls>
|
<relation_decls>
|
||||||
<relation_decl id="GC_ID" uri="vm/gc/id"/>
|
<relation_decl id="GcId" uri="vm/gc/id"/>
|
||||||
<relation_decl id="COMP_ID" uri="vm/compiler/id"/>
|
<relation_decl id="CompileId" uri="vm/compiler/id"/>
|
||||||
<relation_decl id="SWEEP_ID" uri="vm/code_sweeper/id"/>
|
<relation_decl id="SweepId" uri="vm/code_sweeper/id"/>
|
||||||
<relation_decl id="JAVA_MONITOR_ADDRESS" uri="java/monitor/address"/>
|
<relation_decl id="JavaMonitorAddress" uri="java/monitor/address"/>
|
||||||
<relation_decl id="SAFEPOINT_ID" uri="vm/runtime/safepoint/id"/>
|
<relation_decl id="SafepointId" uri="vm/runtime/safepoint/id"/>
|
||||||
</relation_decls>
|
</relation_decls>
|
||||||
|
@ -43,7 +43,7 @@ jvm_type means defining a new one for our own use.
|
|||||||
Example: (GcMode)
|
Example: (GcMode)
|
||||||
|
|
||||||
<content_type id="GCMode" hr_name="GC mode" type="U1" jvm_type="GCMODE">
|
<content_type id="GCMode" hr_name="GC mode" type="U1" jvm_type="GCMODE">
|
||||||
<value type="UTF8" field="desc" description="Description"/>
|
<value type="STRING" field="desc" description="Description"/>
|
||||||
</content_type>
|
</content_type>
|
||||||
|
|
||||||
This creates a content type CONTENT_TYPE_GCMODE
|
This creates a content type CONTENT_TYPE_GCMODE
|
||||||
@ -61,119 +61,119 @@ Now we can use the content + data type in declaring event fields.
|
|||||||
<content_types>
|
<content_types>
|
||||||
<content_type id="Thread" hr_name="Thread"
|
<content_type id="Thread" hr_name="Thread"
|
||||||
type="U8" builtin_type="THREAD">
|
type="U8" builtin_type="THREAD">
|
||||||
<value type="UTF8" field="osName" label="OS Thread Name"/>
|
<value type="STRING" field="osName" label="OS Thread Name"/>
|
||||||
<value type="LONG" field="osThreadID" label="OS Thread ID"/>
|
<value type="LONG" field="osThreadId" label="OS Thread Id"/>
|
||||||
<value type="UTF8" field="javaName" label="Java Lang Thread Name"/>
|
<value type="STRING" field="javaName" label="Java Thread Name"/>
|
||||||
<value type="LONG" field="javaThreadID" label="Java Lang Thread ID"/>
|
<value type="LONG" field="javaThreadId" label="Java Thread Id"/>
|
||||||
<value type="THREADGROUP" field="group" label="Java Thread Group"/>
|
<value type="THREADGROUP" field="group" label="Java Thread Group"/>
|
||||||
</content_type>
|
</content_type>
|
||||||
|
|
||||||
<content_type id="ThreadGroup" hr_name="Thread group"
|
<content_type id="ThreadGroup" hr_name="Thread group"
|
||||||
type="U8" jvm_type="THREADGROUP">
|
type="U8" jvm_type="THREADGROUP">
|
||||||
<value type="THREADGROUP" field="parent" label="Parent"/>
|
<value type="THREADGROUP" field="parent" label="Parent"/>
|
||||||
<value type="UTF8" field="name" label="Name"/>
|
<value type="STRING" field="name" label="Name"/>
|
||||||
</content_type>
|
</content_type>
|
||||||
|
|
||||||
<content_type id="Class" hr_name="Java class"
|
<content_type id="Class" hr_name="Java class"
|
||||||
type="U8" builtin_type="CLASS">
|
type="U8" builtin_type="CLASS">
|
||||||
<value type="CLASS" field="loaderClass" label="ClassLoader"/>
|
<value type="CLASS" field="classLoaderType" label="Class Loader"/>
|
||||||
<value type="SYMBOL" field="name" label="Name"/>
|
<value type="SYMBOL" field="name" label="Name"/>
|
||||||
<value type="PACKAGE" field="package" label="Package"/>
|
<value type="PACKAGE" field="package" label="Package"/>
|
||||||
<value type="SHORT" field="modifiers" label="Access modifiers"/>
|
<value type="INTEGER" field="modifiers" label="Access Modifiers"/>
|
||||||
</content_type>
|
</content_type>
|
||||||
|
|
||||||
<content_type id="Method" hr_name="Java method"
|
<content_type id="Method" hr_name="Java method"
|
||||||
type="U8" jvm_type="METHOD">
|
type="U8" jvm_type="METHOD">
|
||||||
<value type="CLASS" field="class" label="Class"/>
|
<value type="CLASS" field="type" label="Type"/>
|
||||||
<value type="SYMBOL" field="name" label="Name"/>
|
<value type="SYMBOL" field="name" label="Name"/>
|
||||||
<value type="SYMBOL" field="signature" label="Signature"/>
|
<value type="SYMBOL" field="descriptor" label="Descriptor"/>
|
||||||
<value type="SHORT" field="modifiers" label="Access modifiers"/>
|
<value type="INTEGER" field="modifiers" label="Access Modifiers"/>
|
||||||
<value type="BOOLEAN" field="hidden" label="Hidden"/>
|
<value type="BOOLEAN" field="hidden" label="Hidden"/>
|
||||||
</content_type>
|
</content_type>
|
||||||
|
|
||||||
<content_type id="UTFConstant" hr_name="UTF constant"
|
<content_type id="Symbol" hr_name="Symbol"
|
||||||
type="U8" jvm_type="SYMBOL">
|
type="U8" jvm_type="SYMBOL">
|
||||||
<value type="UTF8" field="utf8" label="UTF8 data"/>
|
<value type="STRING" field="string" label="String"/>
|
||||||
</content_type>
|
</content_type>
|
||||||
|
|
||||||
<content_type id="ThreadState" hr_name="Java Thread State"
|
<content_type id="ThreadState" hr_name="Java Thread State"
|
||||||
type="U8" jvm_type="THREADSTATE">
|
type="U8" jvm_type="THREADSTATE">
|
||||||
<value type="UTF8" field="name" label="Name"/>
|
<value type="STRING" field="name" label="Name"/>
|
||||||
</content_type>
|
</content_type>
|
||||||
|
|
||||||
<content_type id="GCName" hr_name="GC Name"
|
<content_type id="GCName" hr_name="GC Name"
|
||||||
type="U8" jvm_type="GCNAME">
|
type="U8" jvm_type="GCNAME">
|
||||||
<value type="UTF8" field="name" label="name" />
|
<value type="STRING" field="name" label="Name" />
|
||||||
</content_type>
|
</content_type>
|
||||||
|
|
||||||
<content_type id="GCCause" hr_name="GC Cause"
|
<content_type id="GCCause" hr_name="GC Cause"
|
||||||
type="U8" jvm_type="GCCAUSE">
|
type="U8" jvm_type="GCCAUSE">
|
||||||
<value type="UTF8" field="cause" label="cause" />
|
<value type="STRING" field="cause" label="Cause" />
|
||||||
</content_type>
|
</content_type>
|
||||||
|
|
||||||
<content_type id="GCWhen" hr_name="GC When"
|
<content_type id="GCWhen" hr_name="GC When"
|
||||||
type="U8" jvm_type="GCWHEN">
|
type="U8" jvm_type="GCWHEN">
|
||||||
<value type="UTF8" field="when" label="when" />
|
<value type="STRING" field="when" label="When" />
|
||||||
</content_type>
|
</content_type>
|
||||||
|
|
||||||
<content_type id="G1HeapRegionType" hr_name="G1 Heap Region Type"
|
<content_type id="G1HeapRegionType" hr_name="G1 Heap Region Type"
|
||||||
type="U8" jvm_type="G1HEAPREGIONTYPE">
|
type="U8" jvm_type="G1HEAPREGIONTYPE">
|
||||||
<value type="UTF8" field="type" label="type" />
|
<value type="STRING" field="type" label="Type" />
|
||||||
</content_type>
|
</content_type>
|
||||||
|
|
||||||
<content_type id="G1YCType" hr_name="G1 YC Type"
|
<content_type id="G1YCType" hr_name="G1 YC Type"
|
||||||
type="U8" jvm_type="G1YCTYPE">
|
type="U8" jvm_type="G1YCTYPE">
|
||||||
<value type="UTF8" field="type" label="type" />
|
<value type="STRING" field="type" label="Type" />
|
||||||
</content_type>
|
</content_type>
|
||||||
|
|
||||||
<content_type id="GCThresholdUpdater" hr_name="GC Treshold Updater"
|
<content_type id="GCThresholdUpdater" hr_name="GC Treshold Updater"
|
||||||
type="U8" jvm_type="GCTHRESHOLDUPDATER">
|
type="U8" jvm_type="GCTHRESHOLDUPDATER">
|
||||||
<value type="UTF8" field="updater" label="updater" />
|
<value type="STRING" field="updater" label="Updater" />
|
||||||
</content_type>
|
</content_type>
|
||||||
|
|
||||||
<content_type id="ReferenceType" hr_name="Reference Type"
|
<content_type id="ReferenceType" hr_name="Reference Type"
|
||||||
type="U8" jvm_type="REFERENCETYPE">
|
type="U8" jvm_type="REFERENCETYPE">
|
||||||
<value type="UTF8" field="type" label="type" />
|
<value type="STRING" field="type" label="Type" />
|
||||||
</content_type>
|
</content_type>
|
||||||
|
|
||||||
<content_type id="MetadataType" hr_name="Metadata Type"
|
<content_type id="MetadataType" hr_name="Metadata Type"
|
||||||
type="U8" jvm_type="METADATATYPE">
|
type="U8" jvm_type="METADATATYPE">
|
||||||
<value type="UTF8" field="type" label="type" />
|
<value type="STRING" field="type" label="Type" />
|
||||||
</content_type>
|
</content_type>
|
||||||
|
|
||||||
<content_type id="MetaspaceObjectType" hr_name="Metaspace Object Type"
|
<content_type id="MetaspaceObjectType" hr_name="Metaspace Object Type"
|
||||||
type="U8" jvm_type="METASPACEOBJTYPE">
|
type="U8" jvm_type="METASPACEOBJTYPE">
|
||||||
<value type="UTF8" field="type" label="type" />
|
<value type="STRING" field="type" label="Type" />
|
||||||
</content_type>
|
</content_type>
|
||||||
|
|
||||||
<content_type id="NARROW_OOP_MODE" hr_name="Narrow Oop Mode"
|
<content_type id="NarrowOopMode" hr_name="Narrow oop Mode"
|
||||||
type="U8" jvm_type="NARROWOOPMODE">
|
type="U8" jvm_type="NARROWOOPMODE">
|
||||||
<value type="UTF8" field="mode" label="mode" />
|
<value type="STRING" field="mode" label="Mode" />
|
||||||
</content_type>
|
</content_type>
|
||||||
|
|
||||||
<content_type id="VMOperationType" hr_name="VM Operation Type"
|
<content_type id="VMOperationType" hr_name="VM Operation Type"
|
||||||
type="U8" jvm_type="VMOPERATIONTYPE">
|
type="U8" jvm_type="VMOPERATIONTYPE">
|
||||||
<value type="UTF8" field="type" label="type" />
|
<value type="STRING" field="type" label="Type" />
|
||||||
</content_type>
|
</content_type>
|
||||||
|
|
||||||
<content_type id="CompilerPhaseType" hr_name="Compiler Phase Type"
|
<content_type id="CompilerPhaseType" hr_name="Compiler Phase Type"
|
||||||
type="U8" jvm_type="COMPILERPHASETYPE">
|
type="U8" jvm_type="COMPILERPHASETYPE">
|
||||||
<value type="UTF8" field="phase" label="phase" />
|
<value type="STRING" field="phase" label="Phase" />
|
||||||
</content_type>
|
</content_type>
|
||||||
|
|
||||||
<content_type id="FlagValueOrigin" hr_name="Flag Value Origin"
|
<content_type id="FlagValueOrigin" hr_name="Flag Value Origin"
|
||||||
type="U8" jvm_type="FLAGVALUEORIGIN">
|
type="U8" jvm_type="FLAGVALUEORIGIN">
|
||||||
<value type="UTF8" field="origin" label="origin" />
|
<value type="STRING" field="origin" label="Origin" />
|
||||||
</content_type>
|
</content_type>
|
||||||
|
|
||||||
<content_type id="CodeBlobType" hr_name="Code Blob Type"
|
<content_type id="CodeBlobType" hr_name="Code Blob Type"
|
||||||
type="U8" jvm_type="CODEBLOBTYPE">
|
type="U8" jvm_type="CODEBLOBTYPE">
|
||||||
<value type="UTF8" field="type" label="type" />
|
<value type="STRING" field="type" label="Type" />
|
||||||
</content_type>
|
</content_type>
|
||||||
|
|
||||||
<content_type id="InflateCause" hr_name="Inflation Cause"
|
<content_type id="InflateCause" hr_name="Inflation Cause"
|
||||||
type="U8" jvm_type="INFLATECAUSE">
|
type="U8" jvm_type="INFLATECAUSE">
|
||||||
<value type="UTF8" field="cause" label="cause" />
|
<value type="STRING" field="cause" label="Cause" />
|
||||||
</content_type>
|
</content_type>
|
||||||
|
|
||||||
<content_type id="Module" hr_name="Module"
|
<content_type id="Module" hr_name="Module"
|
||||||
@ -181,7 +181,7 @@ Now we can use the content + data type in declaring event fields.
|
|||||||
<value type="SYMBOL" field="name" label="Name"/>
|
<value type="SYMBOL" field="name" label="Name"/>
|
||||||
<value type="SYMBOL" field="version" label="Version"/>
|
<value type="SYMBOL" field="version" label="Version"/>
|
||||||
<value type="SYMBOL" field="location" label="Location"/>
|
<value type="SYMBOL" field="location" label="Location"/>
|
||||||
<value type="CLASS" field="classLoader" label="ClassLoader"/>
|
<value type="CLASS" field="classLoader" label="Class Loader"/>
|
||||||
</content_type>
|
</content_type>
|
||||||
|
|
||||||
<content_type id="Package" hr_name="Package"
|
<content_type id="Package" hr_name="Package"
|
||||||
@ -288,8 +288,9 @@ Now we can use the content + data type in declaring event fields.
|
|||||||
<primary_type symbol="PERCENTAGE" datatype="FLOAT" contenttype="PERCENTAGE"
|
<primary_type symbol="PERCENTAGE" datatype="FLOAT" contenttype="PERCENTAGE"
|
||||||
type="float" sizeop="sizeof(float)"/>
|
type="float" sizeop="sizeof(float)"/>
|
||||||
|
|
||||||
<!-- UTF8-encoded string, max length Integer.MAX_VALUE -->
|
<!-- STRING is a virtual type - depending on encoding
|
||||||
<primary_type symbol="UTF8" datatype="UTF8" contenttype="NONE"
|
it will have polymorphic content -->
|
||||||
|
<primary_type symbol="STRING" datatype="STRING" contenttype="NONE"
|
||||||
type="const char*" sizeop="sizeof_utf(%)"/>
|
type="const char*" sizeop="sizeof_utf(%)"/>
|
||||||
|
|
||||||
<!-- Symbol* constant. Note that this may currently ONLY be used by
|
<!-- Symbol* constant. Note that this may currently ONLY be used by
|
||||||
@ -325,8 +326,7 @@ Now we can use the content + data type in declaring event fields.
|
|||||||
<!-- Threadgroup THIS TYPE MAY NOT BE USED IN NORMAL EVENTS (ATM). Only
|
<!-- Threadgroup THIS TYPE MAY NOT BE USED IN NORMAL EVENTS (ATM). Only
|
||||||
for thread constant pool // KK TODO: u8 should be ObjectP -->
|
for thread constant pool // KK TODO: u8 should be ObjectP -->
|
||||||
<primary_type symbol="THREADGROUP" datatype="U8" contenttype="THREADGROUP"
|
<primary_type symbol="THREADGROUP" datatype="U8" contenttype="THREADGROUP"
|
||||||
type="u8"
|
type="u8" sizeop="sizeof(u8)"/>
|
||||||
sizeop="sizeof(u8)"/>
|
|
||||||
|
|
||||||
<!-- FRAMETYPE enum -->
|
<!-- FRAMETYPE enum -->
|
||||||
<primary_type symbol="FRAMETYPE" datatype="U8" contenttype="FRAMETYPE"
|
<primary_type symbol="FRAMETYPE" datatype="U8" contenttype="FRAMETYPE"
|
||||||
@ -361,39 +361,39 @@ Now we can use the content + data type in declaring event fields.
|
|||||||
type="u8" sizeop="sizeof(u8)" />
|
type="u8" sizeop="sizeof(u8)" />
|
||||||
|
|
||||||
<!-- REFERENCETYPE -->
|
<!-- REFERENCETYPE -->
|
||||||
<primary_type symbol="REFERENCETYPE" datatype="U8"
|
<primary_type symbol="REFERENCETYPE" datatype="U8" contenttype="REFERENCETYPE"
|
||||||
contenttype="REFERENCETYPE" type="u8" sizeop="sizeof(u8)" />
|
type="u8" sizeop="sizeof(u8)" />
|
||||||
|
|
||||||
<!-- METADATATYPE -->
|
<!-- METADATATYPE -->
|
||||||
<primary_type symbol="METADATATYPE" datatype="U8"
|
<primary_type symbol="METADATATYPE" datatype="U8" contenttype="METADATATYPE"
|
||||||
contenttype="METADATATYPE" type="u8" sizeop="sizeof(u8)" />
|
type="u8" sizeop="sizeof(u8)" />
|
||||||
|
|
||||||
<!-- METADATAOBJTYPE -->
|
<!-- METADATAOBJTYPE -->
|
||||||
<primary_type symbol="METASPACEOBJTYPE" datatype="U8"
|
<primary_type symbol="METASPACEOBJTYPE" datatype="U8" contenttype="METASPACEOBJTYPE"
|
||||||
contenttype="METASPACEOBJTYPE" type="u8" sizeop="sizeof(u8)" />
|
type="u8" sizeop="sizeof(u8)" />
|
||||||
|
|
||||||
<!-- NARROWOOPMODE -->
|
<!-- NARROWOOPMODE -->
|
||||||
<primary_type symbol="NARROWOOPMODE" datatype="U8"
|
<primary_type symbol="NARROWOOPMODE" datatype="U8" contenttype="NARROWOOPMODE"
|
||||||
contenttype="NARROWOOPMODE" type="u8" sizeop="sizeof(u8)" />
|
type="u8" sizeop="sizeof(u8)" />
|
||||||
|
|
||||||
<!-- COMPILERPHASETYPE -->
|
<!-- COMPILERPHASETYPE -->
|
||||||
<primary_type symbol="COMPILERPHASETYPE" datatype="U8"
|
<primary_type symbol="COMPILERPHASETYPE" datatype="U8" contenttype="COMPILERPHASETYPE"
|
||||||
contenttype="COMPILERPHASETYPE" type="u8" sizeop="sizeof(u8)" />
|
type="u8" sizeop="sizeof(u8)" />
|
||||||
|
|
||||||
<!-- VMOPERATIONTYPE -->
|
<!-- VMOPERATIONTYPE -->
|
||||||
<primary_type symbol="VMOPERATIONTYPE" datatype="U8" contenttype="VMOPERATIONTYPE"
|
<primary_type symbol="VMOPERATIONTYPE" datatype="U8" contenttype="VMOPERATIONTYPE"
|
||||||
type="u8" sizeop="sizeof(u8)" />
|
type="u8" sizeop="sizeof(u8)" />
|
||||||
|
|
||||||
<!-- FLAGVALUEORIGIN -->
|
<!-- FLAGVALUEORIGIN -->
|
||||||
<primary_type symbol="FLAGVALUEORIGIN" datatype="U8"
|
<primary_type symbol="FLAGVALUEORIGIN" datatype="U8" contenttype="FLAGVALUEORIGIN"
|
||||||
contenttype="FLAGVALUEORIGIN" type="u8" sizeop="sizeof(u8)" />
|
type="u8" sizeop="sizeof(u8)" />
|
||||||
|
|
||||||
<!-- CODEBLOBTYPE -->
|
<!-- CODEBLOBTYPE -->
|
||||||
<primary_type symbol="CODEBLOBTYPE" datatype="U8"
|
<primary_type symbol="CODEBLOBTYPE" datatype="U8" contenttype="CODEBLOBTYPE"
|
||||||
contenttype="CODEBLOBTYPE" type="u8" sizeop="sizeof(u8)" />
|
type="u8" sizeop="sizeof(u8)" />
|
||||||
|
|
||||||
<!-- INFLATECAUSE -->
|
<!-- INFLATECAUSE -->
|
||||||
<primary_type symbol="INFLATECAUSE" datatype="U8"
|
<primary_type symbol="INFLATECAUSE" datatype="U8" contenttype="INFLATECAUSE"
|
||||||
contenttype="INFLATECAUSE" type="u8" sizeop="sizeof(u8)" />
|
type="u8" sizeop="sizeof(u8)" />
|
||||||
</primary_types>
|
</primary_types>
|
||||||
</types>
|
</types>
|
||||||
|
Loading…
Reference in New Issue
Block a user