--- old/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp 2015-05-13 14:06:06.194206065 +0200 +++ new/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp 2015-05-13 14:06:06.074202076 +0200 @@ -3016,14 +3016,12 @@ StrongRootsScope srs(n_workers); CMSParInitialMarkTask tsk(this, &srs, n_workers); - gch->set_par_threads(n_workers); initialize_sequential_subtasks_for_young_gen_rescan(n_workers); if (n_workers > 1) { workers->run_task(&tsk); } else { tsk.work(0); } - gch->set_par_threads(0); } else { // The serial version. CLDToOopClosure cld_closure(¬Older, true); @@ -5087,8 +5085,6 @@ CMSParRemarkTask tsk(this, cms_space, n_workers, workers, task_queues(), &srs); - // Set up for parallel process_roots work. - gch->set_par_threads(n_workers); // We won't be iterating over the cards in the card table updating // the younger_gen cards, so we shouldn't call the following else // the verification code as well as subsequent younger_refs_iterate @@ -5126,7 +5122,6 @@ tsk.work(0); } - gch->set_par_threads(0); // 0 ==> non-parallel. // restore, single-threaded for now, any preserved marks // as a result of work_q overflow restore_preserved_marks_if_any();