Mercurial > hg > truffle
comparison src/share/vm/gc_implementation/g1/g1RemSet.cpp @ 12344:7ec10139bf37
8025441: G1: assert "assert(thread < _num_vtimes) failed: just checking" fails when G1ConcRefinementThreads > ParallelGCThreads
Summary: The initialization for the remembered set summary data structures used the wrong thread count, i.e. number of worker threads instead of number of refinement threads.
Reviewed-by: brutisso
author | tschatzl |
---|---|
date | Mon, 30 Sep 2013 12:43:59 +0200 |
parents | d55c004e1d4d |
children | 46d7652b223c |
comparison
equal
deleted
inserted
replaced
12343:d55c004e1d4d | 12344:7ec10139bf37 |
---|---|
81 guarantee(n_workers() > 0, "There should be some workers"); | 81 guarantee(n_workers() > 0, "There should be some workers"); |
82 _cset_rs_update_cl = NEW_C_HEAP_ARRAY(OopsInHeapRegionClosure*, n_workers(), mtGC); | 82 _cset_rs_update_cl = NEW_C_HEAP_ARRAY(OopsInHeapRegionClosure*, n_workers(), mtGC); |
83 for (uint i = 0; i < n_workers(); i++) { | 83 for (uint i = 0; i < n_workers(); i++) { |
84 _cset_rs_update_cl[i] = NULL; | 84 _cset_rs_update_cl[i] = NULL; |
85 } | 85 } |
86 _prev_period_summary.initialize(this, n_workers()); | 86 if (G1SummarizeRSetStats) { |
87 _prev_period_summary.initialize(this); | |
88 } | |
87 } | 89 } |
88 | 90 |
89 G1RemSet::~G1RemSet() { | 91 G1RemSet::~G1RemSet() { |
90 delete _seq_task; | 92 delete _seq_task; |
91 for (uint i = 0; i < n_workers(); i++) { | 93 for (uint i = 0; i < n_workers(); i++) { |
726 return has_refs_into_cset; | 728 return has_refs_into_cset; |
727 } | 729 } |
728 | 730 |
729 void G1RemSet::print_periodic_summary_info(const char* header) { | 731 void G1RemSet::print_periodic_summary_info(const char* header) { |
730 G1RemSetSummary current; | 732 G1RemSetSummary current; |
731 current.initialize(this, n_workers()); | 733 current.initialize(this); |
732 | 734 |
733 _prev_period_summary.subtract_from(¤t); | 735 _prev_period_summary.subtract_from(¤t); |
734 print_summary_info(&_prev_period_summary, header); | 736 print_summary_info(&_prev_period_summary, header); |
735 | 737 |
736 _prev_period_summary.set(¤t); | 738 _prev_period_summary.set(¤t); |
737 } | 739 } |
738 | 740 |
739 void G1RemSet::print_summary_info() { | 741 void G1RemSet::print_summary_info() { |
740 G1RemSetSummary current; | 742 G1RemSetSummary current; |
741 current.initialize(this, n_workers()); | 743 current.initialize(this); |
742 | 744 |
743 print_summary_info(¤t, " Cumulative RS summary"); | 745 print_summary_info(¤t, " Cumulative RS summary"); |
744 } | 746 } |
745 | 747 |
746 void G1RemSet::print_summary_info(G1RemSetSummary * summary, const char * header) { | 748 void G1RemSet::print_summary_info(G1RemSetSummary * summary, const char * header) { |