465 // the updating and scanning of remembered sets. There are some |
465 // the updating and scanning of remembered sets. There are some |
466 // race conditions when these two operations are done in parallel |
466 // race conditions when these two operations are done in parallel |
467 // and they are causing failures. When we resolve said race |
467 // and they are causing failures. When we resolve said race |
468 // conditions, we'll revert back to parallel remembered set |
468 // conditions, we'll revert back to parallel remembered set |
469 // updating and scanning. See CRs 6677707 and 6677708. |
469 // updating and scanning. See CRs 6677707 and 6677708. |
470 if (G1ParallelRSetUpdatingEnabled || (worker_i == 0)) { |
470 if (G1UseParallelRSetUpdating || (worker_i == 0)) { |
471 updateRS(worker_i); |
471 updateRS(worker_i); |
472 scanNewRefsRS(oc, worker_i); |
472 scanNewRefsRS(oc, worker_i); |
473 } else { |
473 } else { |
474 _g1p->record_update_rs_start_time(worker_i, os::elapsedTime() * 1000.0); |
474 _g1p->record_update_rs_start_time(worker_i, os::elapsedTime() * 1000.0); |
475 _g1p->record_update_rs_processed_buffers(worker_i, 0.0); |
475 _g1p->record_update_rs_processed_buffers(worker_i, 0.0); |
476 _g1p->record_update_rs_time(worker_i, 0.0); |
476 _g1p->record_update_rs_time(worker_i, 0.0); |
477 _g1p->record_scan_new_refs_time(worker_i, 0.0); |
477 _g1p->record_scan_new_refs_time(worker_i, 0.0); |
478 } |
478 } |
479 if (G1ParallelRSetScanningEnabled || (worker_i == 0)) { |
479 if (G1UseParallelRSetScanning || (worker_i == 0)) { |
480 scanRS(oc, worker_i); |
480 scanRS(oc, worker_i); |
481 } else { |
481 } else { |
482 _g1p->record_scan_rs_start_time(worker_i, os::elapsedTime() * 1000.0); |
482 _g1p->record_scan_rs_start_time(worker_i, os::elapsedTime() * 1000.0); |
483 _g1p->record_scan_rs_time(worker_i, 0.0); |
483 _g1p->record_scan_rs_time(worker_i, 0.0); |
484 } |
484 } |