< prev index next >

src/hotspot/share/gc/g1/g1RemSetSummary.cpp

Print this page
rev 57138 : [mq]: 8234796-v3


  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  *
  23  */
  24 
  25 #include "precompiled.hpp"
  26 #include "gc/g1/g1BarrierSet.hpp"
  27 #include "gc/g1/g1CollectedHeap.inline.hpp"
  28 #include "gc/g1/g1ConcurrentRefine.hpp"
  29 #include "gc/g1/g1ConcurrentRefineThread.hpp"
  30 #include "gc/g1/g1DirtyCardQueue.hpp"
  31 #include "gc/g1/g1RemSet.hpp"
  32 #include "gc/g1/g1RemSetSummary.hpp"
  33 #include "gc/g1/g1YoungRemSetSamplingThread.hpp"
  34 #include "gc/g1/heapRegion.hpp"
  35 #include "gc/g1/heapRegionRemSet.hpp"
  36 #include "memory/allocation.inline.hpp"

  37 #include "runtime/thread.inline.hpp"
  38 
  39 void G1RemSetSummary::update() {
  40   class CollectData : public ThreadClosure {
  41     G1RemSetSummary* _summary;
  42     uint _counter;
  43   public:
  44     CollectData(G1RemSetSummary * summary) : _summary(summary),  _counter(0) {}
  45     virtual void do_thread(Thread* t) {
  46       G1ConcurrentRefineThread* crt = static_cast<G1ConcurrentRefineThread*>(t);
  47       _summary->set_rs_thread_vtime(_counter, crt->vtime_accum());
  48       _counter++;
  49       _summary->_total_concurrent_refined_cards += crt->total_refined_cards();
  50     }
  51   } collector(this);
  52   G1CollectedHeap* g1h = G1CollectedHeap::heap();
  53   g1h->concurrent_refine()->threads_do(&collector);
  54   _total_mutator_refined_cards = G1BarrierSet::dirty_card_queue_set().total_mutator_refined_cards();
  55   _num_coarsenings = HeapRegionRemSet::n_coarsenings();
  56 




  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  *
  23  */
  24 
  25 #include "precompiled.hpp"
  26 #include "gc/g1/g1BarrierSet.hpp"
  27 #include "gc/g1/g1CollectedHeap.inline.hpp"
  28 #include "gc/g1/g1ConcurrentRefine.hpp"
  29 #include "gc/g1/g1ConcurrentRefineThread.hpp"
  30 #include "gc/g1/g1DirtyCardQueue.hpp"
  31 #include "gc/g1/g1RemSet.hpp"
  32 #include "gc/g1/g1RemSetSummary.hpp"
  33 #include "gc/g1/g1YoungRemSetSamplingThread.hpp"
  34 #include "gc/g1/heapRegion.hpp"
  35 #include "gc/g1/heapRegionRemSet.hpp"
  36 #include "memory/allocation.inline.hpp"
  37 #include "memory/iterator.hpp"
  38 #include "runtime/thread.inline.hpp"
  39 
  40 void G1RemSetSummary::update() {
  41   class CollectData : public ThreadClosure {
  42     G1RemSetSummary* _summary;
  43     uint _counter;
  44   public:
  45     CollectData(G1RemSetSummary * summary) : _summary(summary),  _counter(0) {}
  46     virtual void do_thread(Thread* t) {
  47       G1ConcurrentRefineThread* crt = static_cast<G1ConcurrentRefineThread*>(t);
  48       _summary->set_rs_thread_vtime(_counter, crt->vtime_accum());
  49       _counter++;
  50       _summary->_total_concurrent_refined_cards += crt->total_refined_cards();
  51     }
  52   } collector(this);
  53   G1CollectedHeap* g1h = G1CollectedHeap::heap();
  54   g1h->concurrent_refine()->threads_do(&collector);
  55   _total_mutator_refined_cards = G1BarrierSet::dirty_card_queue_set().total_mutator_refined_cards();
  56   _num_coarsenings = HeapRegionRemSet::n_coarsenings();
  57 


< prev index next >