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
|