< prev index next >

src/hotspot/share/gc/g1/g1CollectionSet.hpp

Print this page
rev 49524 : imported patch 8200426-g1h-refactoring


  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  *
  23  */
  24 
  25 #ifndef SHARE_VM_GC_G1_G1COLLECTIONSET_HPP
  26 #define SHARE_VM_GC_G1_G1COLLECTIONSET_HPP
  27 
  28 #include "gc/g1/collectionSetChooser.hpp"
  29 #include "utilities/debug.hpp"
  30 #include "utilities/globalDefinitions.hpp"
  31 
  32 class G1CollectedHeap;
  33 class G1CollectorState;
  34 class G1GCPhaseTimes;
  35 class G1Policy;
  36 class G1SurvivorRegions;
  37 class HeapRegion;
  38 
  39 class G1CollectionSet {
  40   G1CollectedHeap* _g1;
  41   G1Policy* _policy;
  42 
  43   CollectionSetChooser* _cset_chooser;
  44 
  45   uint _eden_region_length;
  46   uint _survivor_region_length;
  47   uint _old_region_length;
  48 
  49   // The actual collection set as a set of region indices.
  50   // All entries in _collection_set_regions below _collection_set_cur_length are
  51   // assumed to be valid entries.
  52   // We assume that at any time there is at most only one writer and (one or more)
  53   // concurrent readers. This means we are good with using storestore and loadload
  54   // barriers on the writer and reader respectively only.
  55   uint* _collection_set_regions;
  56   volatile size_t _collection_set_cur_length;
  57   size_t _collection_set_max_length;
  58 
  59   // The number of bytes in the collection set before the pause. Set from
  60   // the incrementally built collection set at the start of an evacuation




  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  *
  23  */
  24 
  25 #ifndef SHARE_VM_GC_G1_G1COLLECTIONSET_HPP
  26 #define SHARE_VM_GC_G1_G1COLLECTIONSET_HPP
  27 
  28 #include "gc/g1/collectionSetChooser.hpp"
  29 #include "utilities/debug.hpp"
  30 #include "utilities/globalDefinitions.hpp"
  31 
  32 class G1CollectedHeap;
  33 class G1CollectorState;
  34 class G1GCPhaseTimes;
  35 class G1Policy;
  36 class G1SurvivorRegions;
  37 class HeapRegion;
  38 
  39 class G1CollectionSet {
  40   G1CollectedHeap* _g1h;
  41   G1Policy* _policy;
  42 
  43   CollectionSetChooser* _cset_chooser;
  44 
  45   uint _eden_region_length;
  46   uint _survivor_region_length;
  47   uint _old_region_length;
  48 
  49   // The actual collection set as a set of region indices.
  50   // All entries in _collection_set_regions below _collection_set_cur_length are
  51   // assumed to be valid entries.
  52   // We assume that at any time there is at most only one writer and (one or more)
  53   // concurrent readers. This means we are good with using storestore and loadload
  54   // barriers on the writer and reader respectively only.
  55   uint* _collection_set_regions;
  56   volatile size_t _collection_set_cur_length;
  57   size_t _collection_set_max_length;
  58 
  59   // The number of bytes in the collection set before the pause. Set from
  60   // the incrementally built collection set at the start of an evacuation


< prev index next >