--- a/src/hotspot/share/gc/shared/collectedHeap.hpp Thu Nov 30 18:51:47 2017 +0100
+++ b/src/hotspot/share/gc/shared/collectedHeap.hpp Thu Dec 07 13:05:31 2017 +0100
@@ -34,6 +34,7 @@
#include "utilities/debug.hpp"
#include "utilities/events.hpp"
#include "utilities/formatBuffer.hpp"
+#include "utilities/growableArray.hpp"
// A "CollectedHeap" is an implementation of a java heap for HotSpot. This
// is an abstract class: there may be many different kinds of heaps. This
@@ -46,6 +47,8 @@
class GCHeapSummary;
class GCTimer;
class GCTracer;
+class GCMemoryManager;
+class MemoryPool;
class MetaspaceSummary;
class Thread;
class ThreadClosure;
@@ -218,7 +221,7 @@
// In many heaps, there will be a need to perform some initialization activities
// after the Universe is fully formed, but before general heap allocation is allowed.
// This is the correct place to place such initialization methods.
- virtual void post_initialize() = 0;
+ virtual void post_initialize();
// Stop any onging concurrent work and prepare for exit.
virtual void stop() {}
@@ -486,6 +489,9 @@
// Return the CollectorPolicy for the heap
virtual CollectorPolicy* collector_policy() const = 0;
+ virtual GrowableArray<GCMemoryManager*> memory_managers() = 0;
+ virtual GrowableArray<MemoryPool*> memory_pools() = 0;
+
// Iterate over all objects, calling "cl.do_object" on each.
virtual void object_iterate(ObjectClosure* cl) = 0;
@@ -530,6 +536,9 @@
// Generate any dumps preceding or following a full gc
private:
void full_gc_dump(GCTimer* timer, bool before);
+
+ virtual void initialize_serviceability() = 0;
+
public:
void pre_full_gc_dump(GCTimer* timer);
void post_full_gc_dump(GCTimer* timer);