Mercurial > hg > truffle
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(); |