1.1 --- a/src/share/vm/gc_implementation/g1/concurrentG1Refine.hpp Sun Aug 02 22:33:27 2009 -0700 1.2 +++ b/src/share/vm/gc_implementation/g1/concurrentG1Refine.hpp Mon Aug 03 12:59:30 2009 -0700 1.3 @@ -36,15 +36,19 @@ 1.4 size_t _total_cards; 1.5 size_t _total_travs; 1.6 1.7 - unsigned char* _card_counts; 1.8 - unsigned _n_card_counts; 1.9 - const jbyte* _ct_bot; 1.10 - unsigned* _cur_card_count_histo; 1.11 - unsigned* _cum_card_count_histo; 1.12 - jbyte** _hot_cache; 1.13 - int _hot_cache_size; 1.14 - int _n_hot; 1.15 - int _hot_cache_idx; 1.16 + unsigned char* _card_counts; 1.17 + unsigned _n_card_counts; 1.18 + const jbyte* _ct_bot; 1.19 + unsigned* _cur_card_count_histo; 1.20 + unsigned* _cum_card_count_histo; 1.21 + 1.22 + jbyte** _hot_cache; 1.23 + int _hot_cache_size; 1.24 + int _n_hot; 1.25 + int _hot_cache_idx; 1.26 + 1.27 + int _hot_cache_par_chunk_size; 1.28 + volatile int _hot_cache_par_claimed_idx; 1.29 1.30 // Returns the count of this card after incrementing it. 1.31 int add_card_count(jbyte* card_ptr); 1.32 @@ -70,6 +74,11 @@ 1.33 // Process the cached entries. 1.34 void clean_up_cache(int worker_i, G1RemSet* g1rs); 1.35 1.36 + // Set up for parallel processing of the cards in the hot cache 1.37 + void clear_hot_cache_claimed_index() { 1.38 + _hot_cache_par_claimed_idx = 0; 1.39 + } 1.40 + 1.41 // Discard entries in the hot cache. 1.42 void clear_hot_cache() { 1.43 _hot_cache_idx = 0; _n_hot = 0;