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(&current); 735 _prev_period_summary.subtract_from(&current);
734 print_summary_info(&_prev_period_summary, header); 736 print_summary_info(&_prev_period_summary, header);
735 737
736 _prev_period_summary.set(&current); 738 _prev_period_summary.set(&current);
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(&current, " Cumulative RS summary"); 745 print_summary_info(&current, " 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) {