--- old/src/share/vm/gc_implementation/shared/gcTraceSend.cpp 2014-11-06 01:36:46.489526324 -0800 +++ new/src/share/vm/gc_implementation/shared/gcTraceSend.cpp 2014-11-06 01:36:46.397526327 -0800 @@ -28,6 +28,7 @@ #include "gc_implementation/shared/gcTrace.hpp" #include "gc_implementation/shared/gcWhen.hpp" #include "gc_implementation/shared/copyFailedInfo.hpp" +#include "runtime/handles.hpp" #include "runtime/os.hpp" #include "trace/tracing.hpp" #include "trace/traceBackend.hpp" @@ -110,6 +111,46 @@ } } +bool YoungGCTracer::should_send_promotion_in_new_plab_event() const { + EventPromoteObjectInNewPLAB event; + return event.should_commit(); +} + +bool YoungGCTracer::should_send_promotion_outside_plab_event() const { + EventPromoteObjectOutsidePLAB event; + return event.should_commit(); +} + +void YoungGCTracer::send_promotion_in_new_plab_event(const oop old, const size_t obj_size, + const uint age, bool tenured, + size_t plab_size) const { + + EventPromoteObjectInNewPLAB event; + if (event.should_commit()) { + event.set_gcId(_shared_gc_info.gc_id().id()); + event.set_class(KlassHandle(old->klass())()); + event.set_objectSize(obj_size * HeapWordSize); + event.set_tenured(tenured); + event.set_tenuringAge(age); + event.set_plabSize(plab_size * HeapWordSize); + event.commit(); + } +} + +void YoungGCTracer::send_promotion_outside_plab_event(const oop old, const size_t obj_size, + const uint age, bool tenured) const { + + EventPromoteObjectOutsidePLAB event; + if (event.should_commit()) { + event.set_gcId(_shared_gc_info.gc_id().id()); + event.set_class(KlassHandle(old->klass())()); + event.set_objectSize(obj_size * HeapWordSize); + event.set_tenured(tenured); + event.set_tenuringAge(age); + event.commit(); + } +} + void OldGCTracer::send_old_gc_event() const { EventGCOldGarbageCollection e(UNTIMED); if (e.should_commit()) {