1.1 --- a/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp Fri Dec 11 09:30:48 2009 -0800 1.2 +++ b/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp Wed Dec 16 15:12:51 2009 -0800 1.3 @@ -1375,6 +1375,7 @@ 1.4 G1CollectedHeap::G1CollectedHeap(G1CollectorPolicy* policy_) : 1.5 SharedHeap(policy_), 1.6 _g1_policy(policy_), 1.7 + _dirty_card_queue_set(false), 1.8 _ref_processor(NULL), 1.9 _process_strong_tasks(new SubTasksDone(G1H_PS_NumElements)), 1.10 _bot_shared(NULL), 1.11 @@ -1460,8 +1461,6 @@ 1.12 Universe::check_alignment(init_byte_size, HeapRegion::GrainBytes, "g1 heap"); 1.13 Universe::check_alignment(max_byte_size, HeapRegion::GrainBytes, "g1 heap"); 1.14 1.15 - // We allocate this in any case, but only do no work if the command line 1.16 - // param is off. 1.17 _cg1r = new ConcurrentG1Refine(); 1.18 1.19 // Reserve the maximum. 1.20 @@ -1594,18 +1593,20 @@ 1.21 1.22 JavaThread::satb_mark_queue_set().initialize(SATB_Q_CBL_mon, 1.23 SATB_Q_FL_lock, 1.24 - 0, 1.25 + G1SATBProcessCompletedThreshold, 1.26 Shared_SATB_Q_lock); 1.27 1.28 JavaThread::dirty_card_queue_set().initialize(DirtyCardQ_CBL_mon, 1.29 DirtyCardQ_FL_lock, 1.30 - G1UpdateBufferQueueMaxLength, 1.31 + concurrent_g1_refine()->yellow_zone(), 1.32 + concurrent_g1_refine()->red_zone(), 1.33 Shared_DirtyCardQ_lock); 1.34 1.35 if (G1DeferredRSUpdate) { 1.36 dirty_card_queue_set().initialize(DirtyCardQ_CBL_mon, 1.37 DirtyCardQ_FL_lock, 1.38 - 0, 1.39 + -1, // never trigger processing 1.40 + -1, // no limit on length 1.41 Shared_DirtyCardQ_lock, 1.42 &JavaThread::dirty_card_queue_set()); 1.43 } 1.44 @@ -4239,10 +4240,11 @@ 1.45 RedirtyLoggedCardTableEntryFastClosure redirty; 1.46 dirty_card_queue_set().set_closure(&redirty); 1.47 dirty_card_queue_set().apply_closure_to_all_completed_buffers(); 1.48 - JavaThread::dirty_card_queue_set().merge_bufferlists(&dirty_card_queue_set()); 1.49 + 1.50 + DirtyCardQueueSet& dcq = JavaThread::dirty_card_queue_set(); 1.51 + dcq.merge_bufferlists(&dirty_card_queue_set()); 1.52 assert(dirty_card_queue_set().completed_buffers_num() == 0, "All should be consumed"); 1.53 } 1.54 - 1.55 COMPILER2_PRESENT(DerivedPointerTable::update_pointers()); 1.56 } 1.57