--- old/src/share/vm/gc_implementation/shared/gcTrace.hpp 2014-11-06 01:36:46.185526334 -0800 +++ new/src/share/vm/gc_implementation/shared/gcTrace.hpp 2014-11-06 01:36:46.093526338 -0800 @@ -157,9 +157,38 @@ void report_promotion_failed(const PromotionFailedInfo& pf_info); void report_tenuring_threshold(const uint tenuring_threshold); + /* + * Methods for reporting Promotion in new or outside PLAB Events. + * + * The object age is always required as it is not certain that the mark word + * of the oop can be trusted at this stage. + * + * obj_size is the size of the promoted object in HeapWords + * + * tenured should be true if the object has been promoted to the old + * space during this GC, if the object is copied to survivor space + * from young space or survivor space (aging) tenured should be false. + * + * plab_size is the size of the newly allocated PLAB in HeapWords + */ + bool should_report_promotion_in_new_plab_event() const; + bool should_report_promotion_outside_plab_event() const; + void report_promotion_in_new_plab_event(const oop old, const size_t obj_size, + const uint age, bool tenured, + const size_t plab_size) const; + void report_promotion_outside_plab_event(const oop old, const size_t obj_size, + const uint age, bool tenured) const; + private: void send_young_gc_event() const; void send_promotion_failed_event(const PromotionFailedInfo& pf_info) const; + bool should_send_promotion_in_new_plab_event() const; + bool should_send_promotion_outside_plab_event() const; + void send_promotion_in_new_plab_event(const oop old, const size_t obj_size, + const uint age, bool tenured, + const size_t plab_size) const; + void send_promotion_outside_plab_event(const oop old, const size_t obj_size, + const uint age, bool tenured) const; }; class OldGCTracer : public GCTracer {