comparison src/share/vm/gc_implementation/g1/g1RemSet.cpp @ 17757:eff02b5bd56c

8035654: Add times for evacuation failure handling in "Other" time Summary: Detailed breakdown of time spent in the evacuation failure handling phases to make the "Other" time roughly correspond to the sum of its parts. Reviewed-by: jwilhelm, jmasa
author tschatzl
date Mon, 24 Mar 2014 15:30:46 +0100
parents 46d7652b223c
children 8847586c9037
comparison
equal deleted inserted replaced
17756:a07bea31ef35 17757:eff02b5bd56c
461 461
462 DirtyCardQueueSet& into_cset_dcqs = _g1->into_cset_dirty_card_queue_set(); 462 DirtyCardQueueSet& into_cset_dcqs = _g1->into_cset_dirty_card_queue_set();
463 int into_cset_n_buffers = into_cset_dcqs.completed_buffers_num(); 463 int into_cset_n_buffers = into_cset_dcqs.completed_buffers_num();
464 464
465 if (_g1->evacuation_failed()) { 465 if (_g1->evacuation_failed()) {
466 double restore_remembered_set_start = os::elapsedTime();
467
466 // Restore remembered sets for the regions pointing into the collection set. 468 // Restore remembered sets for the regions pointing into the collection set.
467
468 if (G1DeferredRSUpdate) { 469 if (G1DeferredRSUpdate) {
469 // If deferred RS updates are enabled then we just need to transfer 470 // If deferred RS updates are enabled then we just need to transfer
470 // the completed buffers from (a) the DirtyCardQueueSet used to hold 471 // the completed buffers from (a) the DirtyCardQueueSet used to hold
471 // cards that contain references that point into the collection set 472 // cards that contain references that point into the collection set
472 // to (b) the DCQS used to hold the deferred RS updates 473 // to (b) the DCQS used to hold the deferred RS updates
481 0, 0, true)) { 482 0, 0, true)) {
482 n_completed_buffers++; 483 n_completed_buffers++;
483 } 484 }
484 assert(n_completed_buffers == into_cset_n_buffers, "missed some buffers"); 485 assert(n_completed_buffers == into_cset_n_buffers, "missed some buffers");
485 } 486 }
487
488 _g1->g1_policy()->phase_times()->record_evac_fail_restore_remsets((os::elapsedTime() - restore_remembered_set_start) * 1000.0);
486 } 489 }
487 490
488 // Free any completed buffers in the DirtyCardQueueSet used to hold cards 491 // Free any completed buffers in the DirtyCardQueueSet used to hold cards
489 // which contain references that point into the collection. 492 // which contain references that point into the collection.
490 _g1->into_cset_dirty_card_queue_set().clear(); 493 _g1->into_cset_dirty_card_queue_set().clear();