Print this page


Split Close
Expand all
Collapse all
          --- old/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp
          +++ new/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp
↓ open down ↓ 788 lines elided ↑ open up ↑
 789  789  
 790  790    // Set boundary between young_gen and old_gen
 791  791    assert(perm_gen->reserved().end() <= old_gen->object_space()->bottom(),
 792  792           "perm above old");
 793  793    assert(old_gen->reserved().end() <= young_gen->eden_space()->bottom(),
 794  794           "old above young");
 795  795    _young_generation_boundary = young_gen->eden_space()->bottom();
 796  796  
 797  797    // Initialize ref handling object for scavenging.
 798  798    MemRegion mr = young_gen->reserved();
 799      -  _ref_processor = ReferenceProcessor::create_ref_processor(
 800      -    mr,                         // span
 801      -    true,                       // atomic_discovery
 802      -    true,                       // mt_discovery
 803      -    NULL,                       // is_alive_non_header
 804      -    ParallelGCThreads,
 805      -    ParallelRefProcEnabled);
      799 +  _ref_processor =
      800 +    new ReferenceProcessor(mr,                         // span
      801 +                           ParallelRefProcEnabled && (ParallelGCThreads > 1), // mt processing
      802 +                           ParallelGCThreads,          // mt processing degree
      803 +                           true,                       // mt discovery
      804 +                           ParallelGCThreads,          // mt discovery degree
      805 +                           true,                       // atomic_discovery
      806 +                           NULL,                       // header provides liveness info
      807 +                           false);                     // next field updates do not need write barrier
 806  808  
 807  809    // Cache the cardtable
 808  810    BarrierSet* bs = Universe::heap()->barrier_set();
 809  811    assert(bs->kind() == BarrierSet::CardTableModRef, "Wrong barrier set kind");
 810  812    _card_table = (CardTableExtension*)bs;
 811  813  
 812  814    _counters = new CollectorCounters("PSScavenge", 0);
 813  815  }
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX