comparison src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp @ 10405:f2110083203d

8005849: JEP 167: Event-Based JVM Tracing Reviewed-by: acorn, coleenp, sla Contributed-by: Karen Kinnear <karen.kinnear@oracle.com>, Bengt Rutisson <bengt.rutisson@oracle.com>, Calvin Cheung <calvin.cheung@oracle.com>, Erik Gahlin <erik.gahlin@oracle.com>, Erik Helin <erik.helin@oracle.com>, Jesper Wilhelmsson <jesper.wilhelmsson@oracle.com>, Keith McGuigan <keith.mcguigan@oracle.com>, Mattias Tobiasson <mattias.tobiasson@oracle.com>, Markus Gronlund <markus.gronlund@oracle.com>, Mikael Auno <mikael.auno@oracle.com>, Nils Eliasson <nils.eliasson@oracle.com>, Nils Loodin <nils.loodin@oracle.com>, Rickard Backman <rickard.backman@oracle.com>, Staffan Larsen <staffan.larsen@oracle.com>, Stefan Karlsson <stefan.karlsson@oracle.com>, Yekaterina Kantserova <yekaterina.kantserova@oracle.com>
author sla
date Mon, 10 Jun 2013 11:30:51 +0200
parents 5534bd30c151
children ad72068ac41e
comparison
equal deleted inserted replaced
10404:d0add7016434 10405:f2110083203d
44 class GCTaskManager; 44 class GCTaskManager;
45 class GCTaskQueue; 45 class GCTaskQueue;
46 class PreGCValues; 46 class PreGCValues;
47 class MoveAndUpdateClosure; 47 class MoveAndUpdateClosure;
48 class RefProcTaskExecutor; 48 class RefProcTaskExecutor;
49 class ParallelOldTracer;
50 class STWGCTimer;
49 51
50 // The SplitInfo class holds the information needed to 'split' a source region 52 // The SplitInfo class holds the information needed to 'split' a source region
51 // so that the live data can be copied to two destination *spaces*. Normally, 53 // so that the live data can be copied to two destination *spaces*. Normally,
52 // all the live data in a region is copied to a single destination space (e.g., 54 // all the live data in a region is copied to a single destination space (e.g.,
53 // everything live in a region in eden is copied entirely into the old gen). 55 // everything live in a region in eden is copied entirely into the old gen).
970 friend class FollowKlassClosure; 972 friend class FollowKlassClosure;
971 friend class InstanceClassLoaderKlass; 973 friend class InstanceClassLoaderKlass;
972 friend class RefProcTaskProxy; 974 friend class RefProcTaskProxy;
973 975
974 private: 976 private:
977 static STWGCTimer _gc_timer;
978 static ParallelOldTracer _gc_tracer;
975 static elapsedTimer _accumulated_time; 979 static elapsedTimer _accumulated_time;
976 static unsigned int _total_invocations; 980 static unsigned int _total_invocations;
977 static unsigned int _maximum_compaction_gc_num; 981 static unsigned int _maximum_compaction_gc_num;
978 static jlong _time_of_last_gc; // ms 982 static jlong _time_of_last_gc; // ms
979 static CollectorCounters* _counters; 983 static CollectorCounters* _counters;
1013 static void pre_compact(PreGCValues* pre_gc_values); 1017 static void pre_compact(PreGCValues* pre_gc_values);
1014 static void post_compact(); 1018 static void post_compact();
1015 1019
1016 // Mark live objects 1020 // Mark live objects
1017 static void marking_phase(ParCompactionManager* cm, 1021 static void marking_phase(ParCompactionManager* cm,
1018 bool maximum_heap_compaction); 1022 bool maximum_heap_compaction,
1023 ParallelOldTracer *gc_tracer);
1019 1024
1020 template <class T> 1025 template <class T>
1021 static inline void follow_root(ParCompactionManager* cm, T* p); 1026 static inline void follow_root(ParCompactionManager* cm, T* p);
1022 1027
1023 // Compute the dense prefix for the designated space. This is an experimental 1028 // Compute the dense prefix for the designated space. This is an experimental
1281 static ParMarkBitMap* mark_bitmap() { return &_mark_bitmap; } 1286 static ParMarkBitMap* mark_bitmap() { return &_mark_bitmap; }
1282 static ParallelCompactData& summary_data() { return _summary_data; } 1287 static ParallelCompactData& summary_data() { return _summary_data; }
1283 1288
1284 // Reference Processing 1289 // Reference Processing
1285 static ReferenceProcessor* const ref_processor() { return _ref_processor; } 1290 static ReferenceProcessor* const ref_processor() { return _ref_processor; }
1291
1292 static STWGCTimer* gc_timer() { return &_gc_timer; }
1286 1293
1287 // Return the SpaceId for the given address. 1294 // Return the SpaceId for the given address.
1288 static SpaceId space_id(HeapWord* addr); 1295 static SpaceId space_id(HeapWord* addr);
1289 1296
1290 // Time since last full gc (in milliseconds). 1297 // Time since last full gc (in milliseconds).