comparison src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.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 40136aa2cdb1
comparison
equal deleted inserted replaced
10404:d0add7016434 10405:f2110083203d
1 /* 1 /*
2 * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 * 4 *
5 * This code is free software; you can redistribute it and/or modify it 5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as 6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
28 #include "gc_implementation/parallelScavenge/objectStartArray.hpp" 28 #include "gc_implementation/parallelScavenge/objectStartArray.hpp"
29 #include "gc_implementation/parallelScavenge/psGCAdaptivePolicyCounters.hpp" 29 #include "gc_implementation/parallelScavenge/psGCAdaptivePolicyCounters.hpp"
30 #include "gc_implementation/parallelScavenge/psOldGen.hpp" 30 #include "gc_implementation/parallelScavenge/psOldGen.hpp"
31 #include "gc_implementation/parallelScavenge/psYoungGen.hpp" 31 #include "gc_implementation/parallelScavenge/psYoungGen.hpp"
32 #include "gc_implementation/shared/gcPolicyCounters.hpp" 32 #include "gc_implementation/shared/gcPolicyCounters.hpp"
33 #include "gc_implementation/shared/gcWhen.hpp"
33 #include "gc_interface/collectedHeap.inline.hpp" 34 #include "gc_interface/collectedHeap.inline.hpp"
34 #include "utilities/ostream.hpp" 35 #include "utilities/ostream.hpp"
35 36
36 class AdjoiningGenerations; 37 class AdjoiningGenerations;
38 class CollectorPolicy;
39 class GCHeapSummary;
37 class GCTaskManager; 40 class GCTaskManager;
38 class PSAdaptiveSizePolicy;
39 class GenerationSizer; 41 class GenerationSizer;
40 class CollectorPolicy; 42 class CollectorPolicy;
43 class PSAdaptiveSizePolicy;
44 class PSHeapSummary;
41 45
42 class ParallelScavengeHeap : public CollectedHeap { 46 class ParallelScavengeHeap : public CollectedHeap {
43 friend class VMStructs; 47 friend class VMStructs;
44 private: 48 private:
45 static PSYoungGen* _young_gen; 49 static PSYoungGen* _young_gen;
62 // space reserved for the heap. 66 // space reserved for the heap.
63 AdjoiningGenerations* _gens; 67 AdjoiningGenerations* _gens;
64 unsigned int _death_march_count; 68 unsigned int _death_march_count;
65 69
66 static GCTaskManager* _gc_task_manager; // The task manager. 70 static GCTaskManager* _gc_task_manager; // The task manager.
71
72 void trace_heap(GCWhen::Type when, GCTracer* tracer);
67 73
68 protected: 74 protected:
69 static inline size_t total_invocations(); 75 static inline size_t total_invocations();
70 HeapWord* allocate_new_tlab(size_t size); 76 HeapWord* allocate_new_tlab(size_t size);
71 77
217 bool block_is_obj(const HeapWord* addr) const; 223 bool block_is_obj(const HeapWord* addr) const;
218 224
219 jlong millis_since_last_gc(); 225 jlong millis_since_last_gc();
220 226
221 void prepare_for_verify(); 227 void prepare_for_verify();
228 PSHeapSummary create_ps_heap_summary();
222 virtual void print_on(outputStream* st) const; 229 virtual void print_on(outputStream* st) const;
223 virtual void print_on_error(outputStream* st) const; 230 virtual void print_on_error(outputStream* st) const;
224 virtual void print_gc_threads_on(outputStream* st) const; 231 virtual void print_gc_threads_on(outputStream* st) const;
225 virtual void gc_threads_do(ThreadClosure* tc) const; 232 virtual void gc_threads_do(ThreadClosure* tc) const;
226 virtual void print_tracing_info() const; 233 virtual void print_tracing_info() const;