src/share/vm/gc_implementation/shared/gcTrace.hpp

Print this page

        

*** 33,42 **** --- 33,43 ---- #include "memory/referenceType.hpp" #if INCLUDE_ALL_GCS #include "gc_implementation/g1/g1YCTypes.hpp" #endif #include "utilities/macros.hpp" + #include "utilities/ticks.hpp" typedef uint GCId; class EvacuationInfo; class GCHeapSummary;
*** 45,92 **** class ReferenceProcessorStats; class TimePartitions; class BoolObjectClosure; class SharedGCInfo VALUE_OBJ_CLASS_SPEC { - static const jlong UNSET_TIMESTAMP = -1; - public: static const GCId UNSET_GCID = (GCId)-1; private: GCId _id; GCName _name; GCCause::Cause _cause; ! jlong _start_timestamp; ! jlong _end_timestamp; ! jlong _sum_of_pauses; ! jlong _longest_pause; public: ! SharedGCInfo(GCName name) : _id(UNSET_GCID), _name(name), _cause(GCCause::_last_gc_cause), ! _start_timestamp(UNSET_TIMESTAMP), _end_timestamp(UNSET_TIMESTAMP), _sum_of_pauses(0), _longest_pause(0) {} void set_id(GCId id) { _id = id; } GCId id() const { return _id; } ! void set_start_timestamp(jlong timestamp) { _start_timestamp = timestamp; } ! jlong start_timestamp() const { return _start_timestamp; } ! void set_end_timestamp(jlong timestamp) { _end_timestamp = timestamp; } ! jlong end_timestamp() const { return _end_timestamp; } void set_name(GCName name) { _name = name; } GCName name() const { return _name; } void set_cause(GCCause::Cause cause) { _cause = cause; } GCCause::Cause cause() const { return _cause; } ! void set_sum_of_pauses(jlong duration) { _sum_of_pauses = duration; } ! jlong sum_of_pauses() const { return _sum_of_pauses; } ! void set_longest_pause(jlong duration) { _longest_pause = duration; } ! jlong longest_pause() const { return _longest_pause; } }; class ParallelOldGCInfo VALUE_OBJ_CLASS_SPEC { void* _dense_prefix; public: --- 46,98 ---- class ReferenceProcessorStats; class TimePartitions; class BoolObjectClosure; class SharedGCInfo VALUE_OBJ_CLASS_SPEC { public: static const GCId UNSET_GCID = (GCId)-1; private: GCId _id; GCName _name; GCCause::Cause _cause; ! Ticks _start_timestamp; ! Ticks _end_timestamp; ! Tickspan _sum_of_pauses; ! Tickspan _longest_pause; public: ! SharedGCInfo(GCName name) : ! _id(UNSET_GCID), ! _name(name), ! _cause(GCCause::_last_gc_cause), ! _start_timestamp(), ! _end_timestamp(), ! _sum_of_pauses(), ! _longest_pause() { ! } void set_id(GCId id) { _id = id; } GCId id() const { return _id; } ! void set_start_timestamp(const Ticks& timestamp) { _start_timestamp = timestamp; } ! const Ticks start_timestamp() const { return _start_timestamp; } ! void set_end_timestamp(const Ticks& timestamp) { _end_timestamp = timestamp; } ! const Ticks end_timestamp() const { return _end_timestamp; } void set_name(GCName name) { _name = name; } GCName name() const { return _name; } void set_cause(GCCause::Cause cause) { _cause = cause; } GCCause::Cause cause() const { return _cause; } ! void set_sum_of_pauses(const Tickspan& duration) { _sum_of_pauses = duration; } ! const Tickspan sum_of_pauses() const { return _sum_of_pauses; } ! void set_longest_pause(const Tickspan& duration) { _longest_pause = duration; } ! const Tickspan longest_pause() const { return _longest_pause; } }; class ParallelOldGCInfo VALUE_OBJ_CLASS_SPEC { void* _dense_prefix; public:
*** 114,134 **** class GCTracer : public ResourceObj { protected: SharedGCInfo _shared_gc_info; public: ! void report_gc_start(GCCause::Cause cause, jlong timestamp); ! void report_gc_end(jlong timestamp, TimePartitions* time_partitions); void report_gc_heap_summary(GCWhen::Type when, const GCHeapSummary& heap_summary, const MetaspaceSummary& meta_space_summary) const; void report_gc_reference_stats(const ReferenceProcessorStats& rp) const; void report_object_count_after_gc(BoolObjectClosure* object_filter) NOT_SERVICES_RETURN; bool has_reported_gc_start() const; protected: GCTracer(GCName name) : _shared_gc_info(name) {} ! virtual void report_gc_start_impl(GCCause::Cause cause, jlong timestamp); ! virtual void report_gc_end_impl(jlong timestamp, TimePartitions* time_partitions); private: void send_garbage_collection_event() const; void send_gc_heap_summary_event(GCWhen::Type when, const GCHeapSummary& heap_summary) const; void send_meta_space_summary_event(GCWhen::Type when, const MetaspaceSummary& meta_space_summary) const; --- 120,140 ---- class GCTracer : public ResourceObj { protected: SharedGCInfo _shared_gc_info; public: ! void report_gc_start(GCCause::Cause cause, const Ticks& timestamp); ! void report_gc_end(const Ticks& timestamp, TimePartitions* time_partitions); void report_gc_heap_summary(GCWhen::Type when, const GCHeapSummary& heap_summary, const MetaspaceSummary& meta_space_summary) const; void report_gc_reference_stats(const ReferenceProcessorStats& rp) const; void report_object_count_after_gc(BoolObjectClosure* object_filter) NOT_SERVICES_RETURN; bool has_reported_gc_start() const; protected: GCTracer(GCName name) : _shared_gc_info(name) {} ! virtual void report_gc_start_impl(GCCause::Cause cause, const Ticks& timestamp); ! virtual void report_gc_end_impl(const Ticks& timestamp, TimePartitions* time_partitions); private: void send_garbage_collection_event() const; void send_gc_heap_summary_event(GCWhen::Type when, const GCHeapSummary& heap_summary) const; void send_meta_space_summary_event(GCWhen::Type when, const MetaspaceSummary& meta_space_summary) const;
*** 141,151 **** uint _tenuring_threshold; protected: YoungGCTracer(GCName name) : GCTracer(name), _tenuring_threshold(UNSET_TENURING_THRESHOLD) {} ! virtual void report_gc_end_impl(jlong timestamp, TimePartitions* time_partitions); public: void report_promotion_failed(const PromotionFailedInfo& pf_info); void report_tenuring_threshold(const uint tenuring_threshold); --- 147,157 ---- uint _tenuring_threshold; protected: YoungGCTracer(GCName name) : GCTracer(name), _tenuring_threshold(UNSET_TENURING_THRESHOLD) {} ! virtual void report_gc_end_impl(const Ticks& timestamp, TimePartitions* time_partitions); public: void report_promotion_failed(const PromotionFailedInfo& pf_info); void report_tenuring_threshold(const uint tenuring_threshold);
*** 155,165 **** }; class OldGCTracer : public GCTracer { protected: OldGCTracer(GCName name) : GCTracer(name) {} ! virtual void report_gc_end_impl(jlong timestamp, TimePartitions* time_partitions); public: void report_concurrent_mode_failure(); private: --- 161,171 ---- }; class OldGCTracer : public GCTracer { protected: OldGCTracer(GCName name) : GCTracer(name) {} ! virtual void report_gc_end_impl(const Ticks& timestamp, TimePartitions* time_partitions); public: void report_concurrent_mode_failure(); private:
*** 173,183 **** public: ParallelOldTracer() : OldGCTracer(ParallelOld) {} void report_dense_prefix(void* dense_prefix); protected: ! void report_gc_end_impl(jlong timestamp, TimePartitions* time_partitions); private: void send_parallel_old_event() const; }; --- 179,189 ---- public: ParallelOldTracer() : OldGCTracer(ParallelOld) {} void report_dense_prefix(void* dense_prefix); protected: ! void report_gc_end_impl(const Ticks& timestamp, TimePartitions* time_partitions); private: void send_parallel_old_event() const; };
*** 207,217 **** public: G1NewTracer() : YoungGCTracer(G1New) {} void report_yc_type(G1YCType type); ! void report_gc_end_impl(jlong timestamp, TimePartitions* time_partitions); void report_evacuation_info(EvacuationInfo* info); void report_evacuation_failed(EvacuationFailedInfo& ef_info); private: void send_g1_young_gc_event(); --- 213,223 ---- public: G1NewTracer() : YoungGCTracer(G1New) {} void report_yc_type(G1YCType type); ! void report_gc_end_impl(const Ticks& timestamp, TimePartitions* time_partitions); void report_evacuation_info(EvacuationInfo* info); void report_evacuation_failed(EvacuationFailedInfo& ef_info); private: void send_g1_young_gc_event();