--- old/src/share/vm/gc/g1/concurrentMark.cpp 2016-01-27 14:54:08.609193957 -0500 +++ new/src/share/vm/gc/g1/concurrentMark.cpp 2016-01-27 14:54:08.021160597 -0500 @@ -488,11 +488,11 @@ double overall_cm_overhead = (double) MaxGCPauseMillis * marking_overhead / (double) GCPauseIntervalMillis; - double cpu_ratio = 1.0 / (double) os::processor_count(); + double cpu_ratio = 1.0 / (double) os::active_processor_count(); double marking_thread_num = ceil(overall_cm_overhead / cpu_ratio); double marking_task_overhead = overall_cm_overhead / marking_thread_num * - (double) os::processor_count(); + (double) os::active_processor_count(); double sleep_factor = (1.0 - marking_task_overhead) / marking_task_overhead;