comparison src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp @ 6725:da91efe96a93

6964458: Reimplement class meta-data storage to use native memory Summary: Remove PermGen, allocate meta-data in metaspace linked to class loaders, rewrite GC walking, rewrite and rename metadata to be C++ classes Reviewed-by: jmasa, stefank, never, coleenp, kvn, brutisso, mgerdin, dholmes, jrose, twisti, roland Contributed-by: jmasa <jon.masamitsu@oracle.com>, stefank <stefan.karlsson@oracle.com>, mgerdin <mikael.gerdin@oracle.com>, never <tom.rodriguez@oracle.com>
author coleenp
date Sat, 01 Sep 2012 13:25:18 -0400
parents d2a62e0f25eb
children 685df3c6f84b
comparison
equal deleted inserted replaced
6724:36d1d483d5d6 6725:da91efe96a93
68 class CompactibleFreeListSpace: public CompactibleSpace { 68 class CompactibleFreeListSpace: public CompactibleSpace {
69 friend class VMStructs; 69 friend class VMStructs;
70 friend class ConcurrentMarkSweepGeneration; 70 friend class ConcurrentMarkSweepGeneration;
71 friend class ASConcurrentMarkSweepGeneration; 71 friend class ASConcurrentMarkSweepGeneration;
72 friend class CMSCollector; 72 friend class CMSCollector;
73 friend class CMSPermGenGen;
74 // Local alloc buffer for promotion into this space. 73 // Local alloc buffer for promotion into this space.
75 friend class CFLS_LAB; 74 friend class CFLS_LAB;
76 75
77 // "Size" of chunks of work (executed during parallel remark phases 76 // "Size" of chunks of work (executed during parallel remark phases
78 // of CMS collection); this probably belongs in CMSCollector, although 77 // of CMS collection); this probably belongs in CMSCollector, although
347 346
348 // mutual exclusion support 347 // mutual exclusion support
349 Mutex* freelistLock() const { return &_freelistLock; } 348 Mutex* freelistLock() const { return &_freelistLock; }
350 349
351 // Iteration support 350 // Iteration support
352 void oop_iterate(MemRegion mr, OopClosure* cl); 351 void oop_iterate(MemRegion mr, ExtendedOopClosure* cl);
353 void oop_iterate(OopClosure* cl); 352 void oop_iterate(ExtendedOopClosure* cl);
354 353
355 void object_iterate(ObjectClosure* blk); 354 void object_iterate(ObjectClosure* blk);
356 // Apply the closure to each object in the space whose references 355 // Apply the closure to each object in the space whose references
357 // point to objects in the heap. The usage of CompactibleFreeListSpace 356 // point to objects in the heap. The usage of CompactibleFreeListSpace
358 // by the ConcurrentMarkSweepGeneration for concurrent GC's allows 357 // by the ConcurrentMarkSweepGeneration for concurrent GC's allows
375 ObjectClosureCareful* cl); 374 ObjectClosureCareful* cl);
376 virtual HeapWord* 375 virtual HeapWord*
377 object_iterate_careful(ObjectClosureCareful* cl); 376 object_iterate_careful(ObjectClosureCareful* cl);
378 377
379 // Override: provides a DCTO_CL specific to this kind of space. 378 // Override: provides a DCTO_CL specific to this kind of space.
380 DirtyCardToOopClosure* new_dcto_cl(OopClosure* cl, 379 DirtyCardToOopClosure* new_dcto_cl(ExtendedOopClosure* cl,
381 CardTableModRefBS::PrecisionStyle precision, 380 CardTableModRefBS::PrecisionStyle precision,
382 HeapWord* boundary); 381 HeapWord* boundary);
383 382
384 void blk_iterate(BlkClosure* cl); 383 void blk_iterate(BlkClosure* cl);
385 void blk_iterate_careful(BlkClosureCareful* cl); 384 void blk_iterate_careful(BlkClosureCareful* cl);