6964458: Reimplement class meta-data storage to use native memory

Remove PermGen, allocate meta-data in metaspace linked to class loaders, rewrite GC walking, rewrite and rename metadata to be C++ classes

Co-authored-by: Stefan Karlsson <stefan.karlsson@oracle.com>
Co-authored-by: Mikael Gerdin <mikael.gerdin@oracle.com>
Co-authored-by: Tom Rodriguez <tom.rodriguez@oracle.com>
Reviewed-by: jmasa, stefank, never, coleenp, kvn, brutisso, mgerdin, dholmes, jrose, twisti, roland
This commit is contained in:
Jon Masamitsu 2012-09-01 13:25:18 -04:00 committed by Coleen Phillimore
parent 36eee7c8c8
commit 5c58d27aac
853 changed files with 26124 additions and 82956 deletions

View file

@ -293,21 +293,21 @@ bool Generation::block_is_obj(const HeapWord* p) const {
class GenerationOopIterateClosure : public SpaceClosure {
public:
OopClosure* cl;
ExtendedOopClosure* cl;
MemRegion mr;
virtual void do_space(Space* s) {
s->oop_iterate(mr, cl);
}
GenerationOopIterateClosure(OopClosure* _cl, MemRegion _mr) :
GenerationOopIterateClosure(ExtendedOopClosure* _cl, MemRegion _mr) :
cl(_cl), mr(_mr) {}
};
void Generation::oop_iterate(OopClosure* cl) {
void Generation::oop_iterate(ExtendedOopClosure* cl) {
GenerationOopIterateClosure blk(cl, _reserved);
space_iterate(&blk);
}
void Generation::oop_iterate(MemRegion mr, OopClosure* cl) {
void Generation::oop_iterate(MemRegion mr, ExtendedOopClosure* cl) {
GenerationOopIterateClosure blk(cl, mr);
space_iterate(&blk);
}
@ -435,7 +435,7 @@ bool CardGeneration::expand(size_t bytes, size_t expand_bytes) {
success = grow_to_reserved();
}
if (PrintGC && Verbose) {
if (success && GC_locker::is_active()) {
if (success && GC_locker::is_active_and_needs_gc()) {
gclog_or_tty->print_cr("Garbage collection disabled, expanded heap instead");
}
}