diff options
author | jmasa <none@none> | 2009-02-08 13:18:01 -0800 |
---|---|---|
committer | jmasa <none@none> | 2009-02-08 13:18:01 -0800 |
commit | fdeb5e6a6d5aa02f88759dff40b3512334e51e86 (patch) | |
tree | fd9d8827471b858608dbff21013ef61461110454 /src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp | |
parent | fb0380030e41433ce11ffa2ebd470a474c83637e (diff) | |
download | jdk8u_hotspot-fdeb5e6a6d5aa02f88759dff40b3512334e51e86.tar.gz |
6690928: Use spinning in combination with yields for workstealing termination.
Summary: Substitute a spin loop for most calls to yield() to reduce the stress on the system.
Reviewed-by: tonyp
Diffstat (limited to 'src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp')
-rw-r--r-- | src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp b/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp index 506174b9d..1c6766b99 100644 --- a/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp +++ b/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp @@ -949,6 +949,10 @@ void G1CollectedHeap::do_collection(bool full, bool clear_all_soft_refs, GCOverheadReporter::recordSTWEnd(end); g1_policy()->record_full_collection_end(); +#ifdef TRACESPINNING + ParallelTaskTerminator::print_termination_counts(); +#endif + gc_epilogue(true); // Abandon concurrent refinement. This must happen last: in the @@ -2647,8 +2651,13 @@ G1CollectedHeap::do_collection_pause_at_safepoint(HeapRegion* popular_region) { } } - if (mark_in_progress()) + if (mark_in_progress()) { concurrent_mark()->update_g1_committed(); + } + +#ifdef TRACESPINNING + ParallelTaskTerminator::print_termination_counts(); +#endif gc_epilogue(false); } |