< prev index next >

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

Print this page
rev 49680 : imported patch 6672778-partial-queue-trimming
rev 49681 : imported patch 6672778-refactoring
rev 49682 : [mq]: 6672778-stefanj-review
rev 49683 : [mq]: 6672778-inconsistent-time-fixes


  44 
  45 class G1ParScanThreadState : public CHeapObj<mtGC> {
  46   G1CollectedHeap* _g1h;
  47   RefToScanQueue*  _refs;
  48   DirtyCardQueue   _dcq;
  49   G1CardTable*     _ct;
  50   G1EvacuationRootClosures* _closures;
  51 
  52   G1PLABAllocator*  _plab_allocator;
  53 
  54   AgeTable          _age_table;
  55   InCSetState       _dest[InCSetState::Num];
  56   // Local tenuring threshold.
  57   uint              _tenuring_threshold;
  58   G1ScanEvacuatedObjClosure  _scanner;
  59 
  60   int  _hash_seed;
  61   uint _worker_id;
  62 
  63   // Upper and lower threshold to start and end work queue draining.
  64   uint const _stack_drain_upper_threshold;
  65   uint const _stack_drain_lower_threshold;
  66 
  67   Tickspan _trim_ticks;
  68   // Map from young-age-index (0 == not young, 1 is youngest) to
  69   // surviving words. base is what we get back from the malloc call
  70   size_t* _surviving_young_words_base;
  71   // this points into the array, as we use the first few entries for padding
  72   size_t* _surviving_young_words;
  73 
  74   // Indicates whether in the last generation (old) there is no more space
  75   // available for allocation.
  76   bool _old_gen_is_full;
  77 
  78 #define PADDING_ELEM_NUM (DEFAULT_CACHE_LINE_SIZE / sizeof(size_t))
  79 
  80   DirtyCardQueue& dirty_card_queue()             { return _dcq;  }
  81   G1CardTable* ct()                              { return _ct; }
  82 
  83   InCSetState dest(InCSetState original) const {
  84     assert(original.is_valid(),
  85            "Original state invalid: " CSETSTATE_FORMAT, original.value());




  44 
  45 class G1ParScanThreadState : public CHeapObj<mtGC> {
  46   G1CollectedHeap* _g1h;
  47   RefToScanQueue*  _refs;
  48   DirtyCardQueue   _dcq;
  49   G1CardTable*     _ct;
  50   G1EvacuationRootClosures* _closures;
  51 
  52   G1PLABAllocator*  _plab_allocator;
  53 
  54   AgeTable          _age_table;
  55   InCSetState       _dest[InCSetState::Num];
  56   // Local tenuring threshold.
  57   uint              _tenuring_threshold;
  58   G1ScanEvacuatedObjClosure  _scanner;
  59 
  60   int  _hash_seed;
  61   uint _worker_id;
  62 
  63   // Upper and lower threshold to start and end work queue draining.
  64   uint const _stack_trim_upper_threshold;
  65   uint const _stack_trim_lower_threshold;
  66 
  67   Tickspan _trim_ticks;
  68   // Map from young-age-index (0 == not young, 1 is youngest) to
  69   // surviving words. base is what we get back from the malloc call
  70   size_t* _surviving_young_words_base;
  71   // this points into the array, as we use the first few entries for padding
  72   size_t* _surviving_young_words;
  73 
  74   // Indicates whether in the last generation (old) there is no more space
  75   // available for allocation.
  76   bool _old_gen_is_full;
  77 
  78 #define PADDING_ELEM_NUM (DEFAULT_CACHE_LINE_SIZE / sizeof(size_t))
  79 
  80   DirtyCardQueue& dirty_card_queue()             { return _dcq;  }
  81   G1CardTable* ct()                              { return _ct; }
  82 
  83   InCSetState dest(InCSetState original) const {
  84     assert(original.is_valid(),
  85            "Original state invalid: " CSETSTATE_FORMAT, original.value());


< prev index next >