< prev index next >

src/share/vm/gc_implementation/g1/g1ParScanThreadState.hpp

Print this page




  69   double _strong_roots_time;
  70   double _start_term;
  71   double _term_time;
  72 
  73   // Map from young-age-index (0 == not young, 1 is youngest) to
  74   // surviving words. base is what we get back from the malloc call
  75   size_t* _surviving_young_words_base;
  76   // this points into the array, as we use the first few entries for padding
  77   size_t* _surviving_young_words;
  78 
  79 #define PADDING_ELEM_NUM (DEFAULT_CACHE_LINE_SIZE / sizeof(size_t))
  80 
  81   void   add_to_alloc_buffer_waste(size_t waste) { _alloc_buffer_waste += waste; }
  82   void   add_to_undo_waste(size_t waste)         { _undo_waste += waste; }
  83 
  84   DirtyCardQueue& dirty_card_queue()             { return _dcq;  }
  85   G1SATBCardTableModRefBS* ctbs()                { return _ct_bs; }
  86 
  87   InCSetState dest(InCSetState original) const {
  88     assert(original.is_valid(),
  89            err_msg("Original state invalid: %d", original.value()));
  90     assert(_dest[original.value()].is_valid_gen(),
  91            err_msg("Dest state is invalid: %d", _dest[original.value()].value()));
  92     return _dest[original.value()];
  93   }
  94 
  95  public:
  96   G1ParScanThreadState(G1CollectedHeap* g1h, uint queue_num, ReferenceProcessor* rp);
  97   ~G1ParScanThreadState();
  98 
  99   ageTable*         age_table()       { return &_age_table;       }
 100 
 101 #ifdef ASSERT
 102   bool queue_is_empty() const { return _refs->is_empty(); }
 103 
 104   bool verify_ref(narrowOop* ref) const;
 105   bool verify_ref(oop* ref) const;
 106   bool verify_task(StarTask ref) const;
 107 #endif // ASSERT
 108 
 109   template <class T> void push_on_queue(T* ref) {
 110     assert(verify_ref(ref), "sanity");
 111     _refs->push(ref);




  69   double _strong_roots_time;
  70   double _start_term;
  71   double _term_time;
  72 
  73   // Map from young-age-index (0 == not young, 1 is youngest) to
  74   // surviving words. base is what we get back from the malloc call
  75   size_t* _surviving_young_words_base;
  76   // this points into the array, as we use the first few entries for padding
  77   size_t* _surviving_young_words;
  78 
  79 #define PADDING_ELEM_NUM (DEFAULT_CACHE_LINE_SIZE / sizeof(size_t))
  80 
  81   void   add_to_alloc_buffer_waste(size_t waste) { _alloc_buffer_waste += waste; }
  82   void   add_to_undo_waste(size_t waste)         { _undo_waste += waste; }
  83 
  84   DirtyCardQueue& dirty_card_queue()             { return _dcq;  }
  85   G1SATBCardTableModRefBS* ctbs()                { return _ct_bs; }
  86 
  87   InCSetState dest(InCSetState original) const {
  88     assert(original.is_valid(),
  89            err_msg("Original state invalid: " CSETSTATE_FORMAT, original.value()));
  90     assert(_dest[original.value()].is_valid_gen(),
  91            err_msg("Dest state is invalid: " CSETSTATE_FORMAT, _dest[original.value()].value()));
  92     return _dest[original.value()];
  93   }
  94 
  95  public:
  96   G1ParScanThreadState(G1CollectedHeap* g1h, uint queue_num, ReferenceProcessor* rp);
  97   ~G1ParScanThreadState();
  98 
  99   ageTable*         age_table()       { return &_age_table;       }
 100 
 101 #ifdef ASSERT
 102   bool queue_is_empty() const { return _refs->is_empty(); }
 103 
 104   bool verify_ref(narrowOop* ref) const;
 105   bool verify_ref(oop* ref) const;
 106   bool verify_task(StarTask ref) const;
 107 #endif // ASSERT
 108 
 109   template <class T> void push_on_queue(T* ref) {
 110     assert(verify_ref(ref), "sanity");
 111     _refs->push(ref);


< prev index next >