52 // relaxed in the future when more time is available to implement the
53 // greater generality (and there's a need for it).
54 //
55 // Concurrent mode failures are currently handled by
56 // means of a sliding mark-compact.
57
58 class AdaptiveSizePolicy;
59 class CMSCollector;
60 class CMSConcMarkingTask;
61 class CMSGCAdaptivePolicyCounters;
62 class CMSTracer;
63 class ConcurrentGCTimer;
64 class ConcurrentMarkSweepGeneration;
65 class ConcurrentMarkSweepPolicy;
66 class ConcurrentMarkSweepThread;
67 class CompactibleFreeListSpace;
68 class FreeChunk;
69 class ParNewGeneration;
70 class PromotionInfo;
71 class ScanMarkedObjectsAgainCarefullyClosure;
72 class TenuredGeneration;
73 class SerialOldTracer;
74
75 // A generic CMS bit map. It's the basis for both the CMS marking bit map
76 // as well as for the mod union table (in each case only a subset of the
77 // methods are used). This is essentially a wrapper around the BitMap class,
78 // with one bit per (1<<_shifter) HeapWords. (i.e. for the marking bit map,
79 // we have _shifter == 0. and for the mod union table we have
80 // shifter == CardTable::card_shift - LogHeapWordSize.)
81 // XXX 64-bit issues in BitMap?
82 class CMSBitMap {
83 friend class VMStructs;
84
85 HeapWord* _bmStartWord; // base address of range covered by map
86 size_t _bmWordSize; // map size (in #HeapWords covered)
87 const int _shifter; // shifts to convert HeapWord to bit position
88 VirtualSpace _virtual_space; // underlying the bit map
89 BitMapView _bm; // the bit map itself
90 Mutex* const _lock; // mutex protecting _bm;
91
92 public:
|
52 // relaxed in the future when more time is available to implement the
53 // greater generality (and there's a need for it).
54 //
55 // Concurrent mode failures are currently handled by
56 // means of a sliding mark-compact.
57
58 class AdaptiveSizePolicy;
59 class CMSCollector;
60 class CMSConcMarkingTask;
61 class CMSGCAdaptivePolicyCounters;
62 class CMSTracer;
63 class ConcurrentGCTimer;
64 class ConcurrentMarkSweepGeneration;
65 class ConcurrentMarkSweepPolicy;
66 class ConcurrentMarkSweepThread;
67 class CompactibleFreeListSpace;
68 class FreeChunk;
69 class ParNewGeneration;
70 class PromotionInfo;
71 class ScanMarkedObjectsAgainCarefullyClosure;
72 class SerialOldTracer;
73
74 // A generic CMS bit map. It's the basis for both the CMS marking bit map
75 // as well as for the mod union table (in each case only a subset of the
76 // methods are used). This is essentially a wrapper around the BitMap class,
77 // with one bit per (1<<_shifter) HeapWords. (i.e. for the marking bit map,
78 // we have _shifter == 0. and for the mod union table we have
79 // shifter == CardTable::card_shift - LogHeapWordSize.)
80 // XXX 64-bit issues in BitMap?
81 class CMSBitMap {
82 friend class VMStructs;
83
84 HeapWord* _bmStartWord; // base address of range covered by map
85 size_t _bmWordSize; // map size (in #HeapWords covered)
86 const int _shifter; // shifts to convert HeapWord to bit position
87 VirtualSpace _virtual_space; // underlying the bit map
88 BitMapView _bm; // the bit map itself
89 Mutex* const _lock; // mutex protecting _bm;
90
91 public:
|