mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 15:24:43 +02:00
8076452: Remove SharedHeap
Reviewed-by: stefank, sjohanss, david
This commit is contained in:
parent
7c5c5d80b7
commit
d2f816a875
27 changed files with 68 additions and 220 deletions
|
@ -29,9 +29,9 @@ import java.util.Observable;
|
||||||
import java.util.Observer;
|
import java.util.Observer;
|
||||||
|
|
||||||
import sun.jvm.hotspot.debugger.Address;
|
import sun.jvm.hotspot.debugger.Address;
|
||||||
|
import sun.jvm.hotspot.gc_interface.CollectedHeap;
|
||||||
import sun.jvm.hotspot.gc_interface.CollectedHeapName;
|
import sun.jvm.hotspot.gc_interface.CollectedHeapName;
|
||||||
import sun.jvm.hotspot.memory.MemRegion;
|
import sun.jvm.hotspot.memory.MemRegion;
|
||||||
import sun.jvm.hotspot.memory.SharedHeap;
|
|
||||||
import sun.jvm.hotspot.memory.SpaceClosure;
|
import sun.jvm.hotspot.memory.SpaceClosure;
|
||||||
import sun.jvm.hotspot.runtime.VM;
|
import sun.jvm.hotspot.runtime.VM;
|
||||||
import sun.jvm.hotspot.runtime.VMObjectFactory;
|
import sun.jvm.hotspot.runtime.VMObjectFactory;
|
||||||
|
@ -41,7 +41,7 @@ import sun.jvm.hotspot.types.TypeDataBase;
|
||||||
|
|
||||||
// Mirror class for G1CollectedHeap.
|
// Mirror class for G1CollectedHeap.
|
||||||
|
|
||||||
public class G1CollectedHeap extends SharedHeap {
|
public class G1CollectedHeap extends CollectedHeap {
|
||||||
// HeapRegionManager _hrm;
|
// HeapRegionManager _hrm;
|
||||||
static private long hrmFieldOffset;
|
static private long hrmFieldOffset;
|
||||||
// MemRegion _g1_reserved;
|
// MemRegion _g1_reserved;
|
||||||
|
|
|
@ -32,7 +32,6 @@ public class CollectedHeapName {
|
||||||
private CollectedHeapName(String name) { this.name = name; }
|
private CollectedHeapName(String name) { this.name = name; }
|
||||||
|
|
||||||
public static final CollectedHeapName ABSTRACT = new CollectedHeapName("abstract");
|
public static final CollectedHeapName ABSTRACT = new CollectedHeapName("abstract");
|
||||||
public static final CollectedHeapName SHARED_HEAP = new CollectedHeapName("SharedHeap");
|
|
||||||
public static final CollectedHeapName GEN_COLLECTED_HEAP = new CollectedHeapName("GenCollectedHeap");
|
public static final CollectedHeapName GEN_COLLECTED_HEAP = new CollectedHeapName("GenCollectedHeap");
|
||||||
public static final CollectedHeapName G1_COLLECTED_HEAP = new CollectedHeapName("G1CollectedHeap");
|
public static final CollectedHeapName G1_COLLECTED_HEAP = new CollectedHeapName("G1CollectedHeap");
|
||||||
public static final CollectedHeapName PARALLEL_SCAVENGE_HEAP = new CollectedHeapName("ParallelScavengeHeap");
|
public static final CollectedHeapName PARALLEL_SCAVENGE_HEAP = new CollectedHeapName("ParallelScavengeHeap");
|
||||||
|
|
|
@ -33,7 +33,7 @@ import sun.jvm.hotspot.runtime.*;
|
||||||
import sun.jvm.hotspot.types.*;
|
import sun.jvm.hotspot.types.*;
|
||||||
import sun.jvm.hotspot.utilities.*;
|
import sun.jvm.hotspot.utilities.*;
|
||||||
|
|
||||||
public class GenCollectedHeap extends SharedHeap {
|
public class GenCollectedHeap extends CollectedHeap {
|
||||||
private static CIntegerField nGensField;
|
private static CIntegerField nGensField;
|
||||||
private static AddressField youngGenField;
|
private static AddressField youngGenField;
|
||||||
private static AddressField oldGenField;
|
private static AddressField oldGenField;
|
||||||
|
|
|
@ -1,58 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved.
|
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
||||||
*
|
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
|
||||||
* under the terms of the GNU General Public License version 2 only, as
|
|
||||||
* published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
* version 2 for more details (a copy is included in the LICENSE file that
|
|
||||||
* accompanied this code).
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License version
|
|
||||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
|
||||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
*
|
|
||||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
|
||||||
* or visit www.oracle.com if you need additional information or have any
|
|
||||||
* questions.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
package sun.jvm.hotspot.memory;
|
|
||||||
|
|
||||||
import java.io.*;
|
|
||||||
import java.util.*;
|
|
||||||
|
|
||||||
import sun.jvm.hotspot.debugger.*;
|
|
||||||
import sun.jvm.hotspot.gc_interface.*;
|
|
||||||
import sun.jvm.hotspot.runtime.*;
|
|
||||||
import sun.jvm.hotspot.types.*;
|
|
||||||
|
|
||||||
public abstract class SharedHeap extends CollectedHeap {
|
|
||||||
private static VirtualConstructor ctor;
|
|
||||||
|
|
||||||
static {
|
|
||||||
VM.registerVMInitializedObserver(new Observer() {
|
|
||||||
public void update(Observable o, Object data) {
|
|
||||||
initialize(VM.getVM().getTypeDataBase());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
private static synchronized void initialize(TypeDataBase db) {
|
|
||||||
Type type = db.lookupType("SharedHeap");
|
|
||||||
ctor = new VirtualConstructor(db);
|
|
||||||
}
|
|
||||||
|
|
||||||
public SharedHeap(Address addr) {
|
|
||||||
super(addr);
|
|
||||||
}
|
|
||||||
|
|
||||||
public CollectedHeapName kind() {
|
|
||||||
return CollectedHeapName.SHARED_HEAP;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -81,10 +81,8 @@ public class HeapSummary extends Tool {
|
||||||
System.out.println();
|
System.out.println();
|
||||||
System.out.println("Heap Usage:");
|
System.out.println("Heap Usage:");
|
||||||
|
|
||||||
if (heap instanceof SharedHeap) {
|
if (heap instanceof GenCollectedHeap) {
|
||||||
SharedHeap sharedHeap = (SharedHeap) heap;
|
GenCollectedHeap genHeap = (GenCollectedHeap) heap;
|
||||||
if (sharedHeap instanceof GenCollectedHeap) {
|
|
||||||
GenCollectedHeap genHeap = (GenCollectedHeap) sharedHeap;
|
|
||||||
for (int n = 0; n < genHeap.nGens(); n++) {
|
for (int n = 0; n < genHeap.nGens(); n++) {
|
||||||
Generation gen = genHeap.getGen(n);
|
Generation gen = genHeap.getGen(n);
|
||||||
if (gen instanceof sun.jvm.hotspot.memory.DefNewGeneration) {
|
if (gen instanceof sun.jvm.hotspot.memory.DefNewGeneration) {
|
||||||
|
@ -107,8 +105,8 @@ public class HeapSummary extends Tool {
|
||||||
printGen(gen);
|
printGen(gen);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (sharedHeap instanceof G1CollectedHeap) {
|
} else if (heap instanceof G1CollectedHeap) {
|
||||||
G1CollectedHeap g1h = (G1CollectedHeap) sharedHeap;
|
G1CollectedHeap g1h = (G1CollectedHeap) heap;
|
||||||
G1MonitoringSupport g1mm = g1h.g1mm();
|
G1MonitoringSupport g1mm = g1h.g1mm();
|
||||||
long edenRegionNum = g1mm.edenRegionNum();
|
long edenRegionNum = g1mm.edenRegionNum();
|
||||||
long survivorRegionNum = g1mm.survivorRegionNum();
|
long survivorRegionNum = g1mm.survivorRegionNum();
|
||||||
|
@ -125,9 +123,6 @@ public class HeapSummary extends Tool {
|
||||||
g1mm.survivorUsed(), g1mm.survivorCommitted());
|
g1mm.survivorUsed(), g1mm.survivorCommitted());
|
||||||
printG1Space("G1 Old Generation:", oldRegionNum,
|
printG1Space("G1 Old Generation:", oldRegionNum,
|
||||||
g1mm.oldUsed(), g1mm.oldCommitted());
|
g1mm.oldUsed(), g1mm.oldCommitted());
|
||||||
} else {
|
|
||||||
throw new RuntimeException("unknown SharedHeap type : " + heap.getClass());
|
|
||||||
}
|
|
||||||
} else if (heap instanceof ParallelScavengeHeap) {
|
} else if (heap instanceof ParallelScavengeHeap) {
|
||||||
ParallelScavengeHeap psh = (ParallelScavengeHeap) heap;
|
ParallelScavengeHeap psh = (ParallelScavengeHeap) heap;
|
||||||
PSYoungGen youngGen = psh.youngGen();
|
PSYoungGen youngGen = psh.youngGen();
|
||||||
|
|
|
@ -25,8 +25,8 @@
|
||||||
#include "precompiled.hpp"
|
#include "precompiled.hpp"
|
||||||
#include "gc_implementation/concurrentMarkSweep/adaptiveFreeList.hpp"
|
#include "gc_implementation/concurrentMarkSweep/adaptiveFreeList.hpp"
|
||||||
#include "gc_implementation/concurrentMarkSweep/freeChunk.hpp"
|
#include "gc_implementation/concurrentMarkSweep/freeChunk.hpp"
|
||||||
|
#include "gc_interface/collectedHeap.hpp"
|
||||||
#include "memory/freeBlockDictionary.hpp"
|
#include "memory/freeBlockDictionary.hpp"
|
||||||
#include "memory/sharedHeap.hpp"
|
|
||||||
#include "runtime/globals.hpp"
|
#include "runtime/globals.hpp"
|
||||||
#include "runtime/mutex.hpp"
|
#include "runtime/mutex.hpp"
|
||||||
#include "runtime/orderAccess.inline.hpp"
|
#include "runtime/orderAccess.inline.hpp"
|
||||||
|
|
|
@ -1728,7 +1728,7 @@ void G1CollectedHeap::shrink(size_t shrink_bytes) {
|
||||||
|
|
||||||
|
|
||||||
G1CollectedHeap::G1CollectedHeap(G1CollectorPolicy* policy_) :
|
G1CollectedHeap::G1CollectedHeap(G1CollectorPolicy* policy_) :
|
||||||
SharedHeap(),
|
CollectedHeap(),
|
||||||
_g1_policy(policy_),
|
_g1_policy(policy_),
|
||||||
_dirty_card_queue_set(false),
|
_dirty_card_queue_set(false),
|
||||||
_into_cset_dirty_card_queue_set(false),
|
_into_cset_dirty_card_queue_set(false),
|
||||||
|
|
|
@ -40,9 +40,9 @@
|
||||||
#include "gc_implementation/g1/heapRegionSet.hpp"
|
#include "gc_implementation/g1/heapRegionSet.hpp"
|
||||||
#include "gc_implementation/shared/hSpaceCounters.hpp"
|
#include "gc_implementation/shared/hSpaceCounters.hpp"
|
||||||
#include "gc_implementation/shared/parGCAllocBuffer.hpp"
|
#include "gc_implementation/shared/parGCAllocBuffer.hpp"
|
||||||
|
#include "gc_interface/collectedHeap.hpp"
|
||||||
#include "memory/barrierSet.hpp"
|
#include "memory/barrierSet.hpp"
|
||||||
#include "memory/memRegion.hpp"
|
#include "memory/memRegion.hpp"
|
||||||
#include "memory/sharedHeap.hpp"
|
|
||||||
#include "utilities/stack.hpp"
|
#include "utilities/stack.hpp"
|
||||||
|
|
||||||
// A "G1CollectedHeap" is an implementation of a java heap for HotSpot.
|
// A "G1CollectedHeap" is an implementation of a java heap for HotSpot.
|
||||||
|
@ -178,7 +178,7 @@ class G1RegionMappingChangedListener : public G1MappingChangedListener {
|
||||||
virtual void on_commit(uint start_idx, size_t num_regions, bool zero_filled);
|
virtual void on_commit(uint start_idx, size_t num_regions, bool zero_filled);
|
||||||
};
|
};
|
||||||
|
|
||||||
class G1CollectedHeap : public SharedHeap {
|
class G1CollectedHeap : public CollectedHeap {
|
||||||
friend class VM_CollectForMetadataAllocation;
|
friend class VM_CollectForMetadataAllocation;
|
||||||
friend class VM_G1CollectForAllocation;
|
friend class VM_G1CollectForAllocation;
|
||||||
friend class VM_G1CollectFull;
|
friend class VM_G1CollectFull;
|
||||||
|
@ -1011,7 +1011,7 @@ public:
|
||||||
void ref_processing_init();
|
void ref_processing_init();
|
||||||
|
|
||||||
// Explicitly import set_par_threads into this scope
|
// Explicitly import set_par_threads into this scope
|
||||||
using SharedHeap::set_par_threads;
|
using CollectedHeap::set_par_threads;
|
||||||
// Set _n_par_threads according to a policy TBD.
|
// Set _n_par_threads according to a policy TBD.
|
||||||
void set_par_threads();
|
void set_par_threads();
|
||||||
|
|
||||||
|
|
|
@ -25,8 +25,8 @@
|
||||||
#include "precompiled.hpp"
|
#include "precompiled.hpp"
|
||||||
#include "gc_implementation/g1/g1CollectedHeap.inline.hpp"
|
#include "gc_implementation/g1/g1CollectedHeap.inline.hpp"
|
||||||
#include "gc_implementation/g1/satbQueue.hpp"
|
#include "gc_implementation/g1/satbQueue.hpp"
|
||||||
|
#include "gc_interface/collectedHeap.hpp"
|
||||||
#include "memory/allocation.inline.hpp"
|
#include "memory/allocation.inline.hpp"
|
||||||
#include "memory/sharedHeap.hpp"
|
|
||||||
#include "oops/oop.inline.hpp"
|
#include "oops/oop.inline.hpp"
|
||||||
#include "runtime/mutexLocker.hpp"
|
#include "runtime/mutexLocker.hpp"
|
||||||
#include "runtime/thread.hpp"
|
#include "runtime/thread.hpp"
|
||||||
|
|
|
@ -70,7 +70,7 @@
|
||||||
\
|
\
|
||||||
declare_toplevel_type(G1HeapRegionTable) \
|
declare_toplevel_type(G1HeapRegionTable) \
|
||||||
\
|
\
|
||||||
declare_type(G1CollectedHeap, SharedHeap) \
|
declare_type(G1CollectedHeap, CollectedHeap) \
|
||||||
\
|
\
|
||||||
declare_type(G1OffsetTableContigSpace, CompactibleSpace) \
|
declare_type(G1OffsetTableContigSpace, CompactibleSpace) \
|
||||||
declare_type(HeapRegion, G1OffsetTableContigSpace) \
|
declare_type(HeapRegion, G1OffsetTableContigSpace) \
|
||||||
|
|
|
@ -23,10 +23,10 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "precompiled.hpp"
|
#include "precompiled.hpp"
|
||||||
|
#include "gc_interface/collectedHeap.hpp"
|
||||||
#include "memory/allocation.inline.hpp"
|
#include "memory/allocation.inline.hpp"
|
||||||
#include "memory/cardTableModRefBS.hpp"
|
#include "memory/cardTableModRefBS.hpp"
|
||||||
#include "memory/cardTableRS.hpp"
|
#include "memory/cardTableRS.hpp"
|
||||||
#include "memory/sharedHeap.hpp"
|
|
||||||
#include "memory/space.inline.hpp"
|
#include "memory/space.inline.hpp"
|
||||||
#include "memory/universe.hpp"
|
#include "memory/universe.hpp"
|
||||||
#include "oops/oop.inline.hpp"
|
#include "oops/oop.inline.hpp"
|
||||||
|
|
|
@ -30,7 +30,7 @@
|
||||||
#include "gc_implementation/parallelScavenge/psCompactionManager.hpp"
|
#include "gc_implementation/parallelScavenge/psCompactionManager.hpp"
|
||||||
#include "gc_implementation/shared/collectorCounters.hpp"
|
#include "gc_implementation/shared/collectorCounters.hpp"
|
||||||
#include "gc_implementation/shared/mutableSpace.hpp"
|
#include "gc_implementation/shared/mutableSpace.hpp"
|
||||||
#include "memory/sharedHeap.hpp"
|
#include "gc_interface/collectedHeap.hpp"
|
||||||
#include "oops/oop.hpp"
|
#include "oops/oop.hpp"
|
||||||
|
|
||||||
class ParallelScavengeHeap;
|
class ParallelScavengeHeap;
|
||||||
|
|
|
@ -25,9 +25,9 @@
|
||||||
#include "precompiled.hpp"
|
#include "precompiled.hpp"
|
||||||
#include "gc_implementation/shared/ageTable.hpp"
|
#include "gc_implementation/shared/ageTable.hpp"
|
||||||
#include "gc_implementation/shared/gcPolicyCounters.hpp"
|
#include "gc_implementation/shared/gcPolicyCounters.hpp"
|
||||||
|
#include "gc_interface/collectedHeap.hpp"
|
||||||
#include "memory/collectorPolicy.hpp"
|
#include "memory/collectorPolicy.hpp"
|
||||||
#include "memory/resourceArea.hpp"
|
#include "memory/resourceArea.hpp"
|
||||||
#include "memory/sharedHeap.hpp"
|
|
||||||
#include "runtime/atomic.inline.hpp"
|
#include "runtime/atomic.inline.hpp"
|
||||||
#include "utilities/copy.hpp"
|
#include "utilities/copy.hpp"
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
#include "precompiled.hpp"
|
#include "precompiled.hpp"
|
||||||
#include "gc_implementation/shared/mutableNUMASpace.hpp"
|
#include "gc_implementation/shared/mutableNUMASpace.hpp"
|
||||||
#include "gc_implementation/shared/spaceDecorator.hpp"
|
#include "gc_implementation/shared/spaceDecorator.hpp"
|
||||||
#include "memory/sharedHeap.hpp"
|
#include "gc_interface/collectedHeap.hpp"
|
||||||
#include "oops/oop.inline.hpp"
|
#include "oops/oop.inline.hpp"
|
||||||
#include "runtime/atomic.inline.hpp"
|
#include "runtime/atomic.inline.hpp"
|
||||||
#include "runtime/thread.inline.hpp"
|
#include "runtime/thread.inline.hpp"
|
||||||
|
|
|
@ -75,7 +75,6 @@ class GCHeapLog : public EventLogBase<GCMessage> {
|
||||||
|
|
||||||
//
|
//
|
||||||
// CollectedHeap
|
// CollectedHeap
|
||||||
// SharedHeap
|
|
||||||
// GenCollectedHeap
|
// GenCollectedHeap
|
||||||
// G1CollectedHeap
|
// G1CollectedHeap
|
||||||
// ParallelScavengeHeap
|
// ParallelScavengeHeap
|
||||||
|
|
|
@ -23,11 +23,11 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "precompiled.hpp"
|
#include "precompiled.hpp"
|
||||||
|
#include "gc_interface/collectedHeap.hpp"
|
||||||
#include "memory/allocation.inline.hpp"
|
#include "memory/allocation.inline.hpp"
|
||||||
#include "memory/cardTableModRefBS.inline.hpp"
|
#include "memory/cardTableModRefBS.inline.hpp"
|
||||||
#include "memory/cardTableRS.hpp"
|
#include "memory/cardTableRS.hpp"
|
||||||
#include "memory/genCollectedHeap.hpp"
|
#include "memory/genCollectedHeap.hpp"
|
||||||
#include "memory/sharedHeap.hpp"
|
|
||||||
#include "memory/space.hpp"
|
#include "memory/space.hpp"
|
||||||
#include "memory/space.inline.hpp"
|
#include "memory/space.inline.hpp"
|
||||||
#include "memory/universe.hpp"
|
#include "memory/universe.hpp"
|
||||||
|
@ -451,14 +451,13 @@ void CardTableModRefBS::non_clean_card_iterate_possibly_parallel(Space* sp,
|
||||||
// This is an example of where n_par_threads() is used instead
|
// This is an example of where n_par_threads() is used instead
|
||||||
// of workers()->active_workers(). n_par_threads can be set to 0 to
|
// of workers()->active_workers(). n_par_threads can be set to 0 to
|
||||||
// turn off parallelism. For example when this code is called as
|
// turn off parallelism. For example when this code is called as
|
||||||
// part of verification and SharedHeap::process_roots() is being
|
// part of verification during root processing then n_par_threads()
|
||||||
// used, then n_par_threads() may have been set to 0. active_workers
|
// may have been set to 0. active_workers is not overloaded with
|
||||||
// is not overloaded with the meaning that it is a switch to disable
|
// the meaning that it is a switch to disable parallelism and so keeps
|
||||||
// parallelism and so keeps the meaning of the number of
|
// the meaning of the number of active gc workers. If parallelism has
|
||||||
// active gc workers. If parallelism has not been shut off by
|
// not been shut off by setting n_par_threads to 0, then n_par_threads
|
||||||
// setting n_par_threads to 0, then n_par_threads should be
|
// should be equal to active_workers. When a different mechanism for
|
||||||
// equal to active_workers. When a different mechanism for shutting
|
// shutting off parallelism is used, then active_workers can be used in
|
||||||
// off parallelism is used, then active_workers can be used in
|
|
||||||
// place of n_par_threads.
|
// place of n_par_threads.
|
||||||
int n_threads = GenCollectedHeap::heap()->n_par_threads();
|
int n_threads = GenCollectedHeap::heap()->n_par_threads();
|
||||||
bool is_par = n_threads > 0;
|
bool is_par = n_threads > 0;
|
||||||
|
|
|
@ -23,10 +23,10 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "precompiled.hpp"
|
#include "precompiled.hpp"
|
||||||
|
#include "gc_interface/collectedHeap.hpp"
|
||||||
#include "memory/freeBlockDictionary.hpp"
|
#include "memory/freeBlockDictionary.hpp"
|
||||||
#include "memory/freeList.hpp"
|
#include "memory/freeList.hpp"
|
||||||
#include "memory/metachunk.hpp"
|
#include "memory/metachunk.hpp"
|
||||||
#include "memory/sharedHeap.hpp"
|
|
||||||
#include "runtime/globals.hpp"
|
#include "runtime/globals.hpp"
|
||||||
#include "runtime/mutex.hpp"
|
#include "runtime/mutex.hpp"
|
||||||
#include "runtime/vmThread.hpp"
|
#include "runtime/vmThread.hpp"
|
||||||
|
|
|
@ -23,9 +23,9 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "precompiled.hpp"
|
#include "precompiled.hpp"
|
||||||
|
#include "gc_interface/collectedHeap.hpp"
|
||||||
#include "memory/gcLocker.inline.hpp"
|
#include "memory/gcLocker.inline.hpp"
|
||||||
#include "memory/resourceArea.hpp"
|
#include "memory/resourceArea.hpp"
|
||||||
#include "memory/sharedHeap.hpp"
|
|
||||||
#include "runtime/atomic.inline.hpp"
|
#include "runtime/atomic.inline.hpp"
|
||||||
#include "runtime/thread.inline.hpp"
|
#include "runtime/thread.inline.hpp"
|
||||||
|
|
||||||
|
|
|
@ -78,7 +78,7 @@ enum GCH_strong_roots_tasks {
|
||||||
};
|
};
|
||||||
|
|
||||||
GenCollectedHeap::GenCollectedHeap(GenCollectorPolicy *policy) :
|
GenCollectedHeap::GenCollectedHeap(GenCollectorPolicy *policy) :
|
||||||
SharedHeap(),
|
CollectedHeap(),
|
||||||
_rem_set(NULL),
|
_rem_set(NULL),
|
||||||
_gen_policy(policy),
|
_gen_policy(policy),
|
||||||
_process_strong_tasks(new SubTasksDone(GCH_PS_NumElements)),
|
_process_strong_tasks(new SubTasksDone(GCH_PS_NumElements)),
|
||||||
|
|
|
@ -26,16 +26,16 @@
|
||||||
#define SHARE_VM_MEMORY_GENCOLLECTEDHEAP_HPP
|
#define SHARE_VM_MEMORY_GENCOLLECTEDHEAP_HPP
|
||||||
|
|
||||||
#include "gc_implementation/shared/adaptiveSizePolicy.hpp"
|
#include "gc_implementation/shared/adaptiveSizePolicy.hpp"
|
||||||
|
#include "gc_interface/collectedHeap.hpp"
|
||||||
#include "memory/collectorPolicy.hpp"
|
#include "memory/collectorPolicy.hpp"
|
||||||
#include "memory/generation.hpp"
|
#include "memory/generation.hpp"
|
||||||
#include "memory/sharedHeap.hpp"
|
|
||||||
|
|
||||||
class SubTasksDone;
|
class SubTasksDone;
|
||||||
class FlexibleWorkGang;
|
class FlexibleWorkGang;
|
||||||
|
|
||||||
// A "GenCollectedHeap" is a SharedHeap that uses generational
|
// A "GenCollectedHeap" is a CollectedHeap that uses generational
|
||||||
// collection. It has two generations, young and old.
|
// collection. It has two generations, young and old.
|
||||||
class GenCollectedHeap : public SharedHeap {
|
class GenCollectedHeap : public CollectedHeap {
|
||||||
friend class GenCollectorPolicy;
|
friend class GenCollectorPolicy;
|
||||||
friend class Generation;
|
friend class Generation;
|
||||||
friend class DefNewGeneration;
|
friend class DefNewGeneration;
|
||||||
|
|
|
@ -31,7 +31,6 @@
|
||||||
#include "memory/genOopClosures.hpp"
|
#include "memory/genOopClosures.hpp"
|
||||||
#include "memory/genRemSet.hpp"
|
#include "memory/genRemSet.hpp"
|
||||||
#include "memory/generation.hpp"
|
#include "memory/generation.hpp"
|
||||||
#include "memory/sharedHeap.hpp"
|
|
||||||
#include "memory/space.hpp"
|
#include "memory/space.hpp"
|
||||||
|
|
||||||
inline OopsInGenClosure::OopsInGenClosure(Generation* gen) :
|
inline OopsInGenClosure::OopsInGenClosure(Generation* gen) :
|
||||||
|
|
|
@ -151,7 +151,6 @@ class CLDToOopClosure : public CLDClosure {
|
||||||
};
|
};
|
||||||
|
|
||||||
class CLDToKlassAndOopClosure : public CLDClosure {
|
class CLDToKlassAndOopClosure : public CLDClosure {
|
||||||
friend class SharedHeap;
|
|
||||||
friend class G1CollectedHeap;
|
friend class G1CollectedHeap;
|
||||||
protected:
|
protected:
|
||||||
OopClosure* _oop_closure;
|
OopClosure* _oop_closure;
|
||||||
|
|
|
@ -1,31 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
|
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
||||||
*
|
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
|
||||||
* under the terms of the GNU General Public License version 2 only, as
|
|
||||||
* published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
* version 2 for more details (a copy is included in the LICENSE file that
|
|
||||||
* accompanied this code).
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License version
|
|
||||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
|
||||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
*
|
|
||||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
|
||||||
* or visit www.oracle.com if you need additional information or have any
|
|
||||||
* questions.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "precompiled.hpp"
|
|
||||||
#include "gc_interface/collectedHeap.hpp"
|
|
||||||
#include "memory/sharedHeap.hpp"
|
|
||||||
|
|
||||||
SharedHeap::SharedHeap() :
|
|
||||||
CollectedHeap()
|
|
||||||
{}
|
|
|
@ -1,39 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
|
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
||||||
*
|
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
|
||||||
* under the terms of the GNU General Public License version 2 only, as
|
|
||||||
* published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
* version 2 for more details (a copy is included in the LICENSE file that
|
|
||||||
* accompanied this code).
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License version
|
|
||||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
|
||||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
*
|
|
||||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
|
||||||
* or visit www.oracle.com if you need additional information or have any
|
|
||||||
* questions.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef SHARE_VM_MEMORY_SHAREDHEAP_HPP
|
|
||||||
#define SHARE_VM_MEMORY_SHAREDHEAP_HPP
|
|
||||||
|
|
||||||
#include "gc_interface/collectedHeap.hpp"
|
|
||||||
|
|
||||||
class SharedHeap : public CollectedHeap {
|
|
||||||
friend class VMStructs;
|
|
||||||
|
|
||||||
protected:
|
|
||||||
// Full initialization is done in a concrete subtype's "initialize"
|
|
||||||
// function.
|
|
||||||
SharedHeap();
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // SHARE_VM_MEMORY_SHAREDHEAP_HPP
|
|
|
@ -132,7 +132,6 @@
|
||||||
# include "memory/referencePolicy.hpp"
|
# include "memory/referencePolicy.hpp"
|
||||||
# include "memory/referenceProcessor.hpp"
|
# include "memory/referenceProcessor.hpp"
|
||||||
# include "memory/resourceArea.hpp"
|
# include "memory/resourceArea.hpp"
|
||||||
# include "memory/sharedHeap.hpp"
|
|
||||||
# include "memory/space.hpp"
|
# include "memory/space.hpp"
|
||||||
# include "memory/threadLocalAllocBuffer.hpp"
|
# include "memory/threadLocalAllocBuffer.hpp"
|
||||||
# include "memory/threadLocalAllocBuffer.inline.hpp"
|
# include "memory/threadLocalAllocBuffer.inline.hpp"
|
||||||
|
|
|
@ -1501,8 +1501,7 @@ typedef CompactHashtable<Symbol*, char> SymbolCompactHashTable;
|
||||||
/******************************************/ \
|
/******************************************/ \
|
||||||
\
|
\
|
||||||
declare_toplevel_type(CollectedHeap) \
|
declare_toplevel_type(CollectedHeap) \
|
||||||
declare_type(SharedHeap, CollectedHeap) \
|
declare_type(GenCollectedHeap, CollectedHeap) \
|
||||||
declare_type(GenCollectedHeap, SharedHeap) \
|
|
||||||
declare_toplevel_type(Generation) \
|
declare_toplevel_type(Generation) \
|
||||||
declare_type(DefNewGeneration, Generation) \
|
declare_type(DefNewGeneration, Generation) \
|
||||||
declare_type(CardGeneration, Generation) \
|
declare_type(CardGeneration, Generation) \
|
||||||
|
|
|
@ -340,18 +340,6 @@ class FlexibleWorkGang: public WorkGang {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// Work gangs in garbage collectors: 2009-06-10
|
|
||||||
//
|
|
||||||
// SharedHeap - work gang for stop-the-world parallel collection.
|
|
||||||
// Used by
|
|
||||||
// ParNewGeneration
|
|
||||||
// CMSParRemarkTask
|
|
||||||
// CMSRefProcTaskExecutor
|
|
||||||
// G1CollectedHeap
|
|
||||||
// G1ParFinalCountTask
|
|
||||||
// ConcurrentMark
|
|
||||||
// CMSCollector
|
|
||||||
|
|
||||||
// A class that acts as a synchronisation barrier. Workers enter
|
// A class that acts as a synchronisation barrier. Workers enter
|
||||||
// the barrier and must wait until all other workers have entered
|
// the barrier and must wait until all other workers have entered
|
||||||
// before any of them may leave.
|
// before any of them may leave.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue