< prev index next >

src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp

Print this page
rev 58164 : 8240076: Shenandoah: pacer should cover reset and preclean phases
Reviewed-by: XXX


1797 void ShenandoahHeap::op_roots() {
1798   if (is_concurrent_root_in_progress()) {
1799     if (ShenandoahConcurrentRoots::should_do_concurrent_class_unloading()) {
1800       // Concurrent weak root processing
1801       ShenandoahConcurrentWeakRootsEvacUpdateTask task;
1802       workers()->run_task(&task);
1803 
1804       _unloader.unload();
1805     }
1806 
1807     if (ShenandoahConcurrentRoots::should_do_concurrent_roots()) {
1808       ShenandoahConcurrentRootsEvacUpdateTask task(!ShenandoahConcurrentRoots::should_do_concurrent_class_unloading());
1809       workers()->run_task(&task);
1810     }
1811   }
1812 
1813   set_concurrent_root_in_progress(false);
1814 }
1815 
1816 void ShenandoahHeap::op_reset() {



1817   reset_mark_bitmap();
1818 }
1819 
1820 void ShenandoahHeap::op_preclean() {



1821   concurrent_mark()->preclean_weak_refs();
1822 }
1823 
1824 void ShenandoahHeap::op_init_traversal() {
1825   traversal_gc()->init_traversal_collection();
1826 }
1827 
1828 void ShenandoahHeap::op_traversal() {
1829   traversal_gc()->concurrent_traversal_collection();
1830 }
1831 
1832 void ShenandoahHeap::op_final_traversal() {
1833   traversal_gc()->final_traversal_collection();
1834 }
1835 
1836 void ShenandoahHeap::op_full(GCCause::Cause cause) {
1837   ShenandoahMetricsSnapshot metrics;
1838   metrics.snap_before();
1839 
1840   full_gc()->do_it(cause);




1797 void ShenandoahHeap::op_roots() {
1798   if (is_concurrent_root_in_progress()) {
1799     if (ShenandoahConcurrentRoots::should_do_concurrent_class_unloading()) {
1800       // Concurrent weak root processing
1801       ShenandoahConcurrentWeakRootsEvacUpdateTask task;
1802       workers()->run_task(&task);
1803 
1804       _unloader.unload();
1805     }
1806 
1807     if (ShenandoahConcurrentRoots::should_do_concurrent_roots()) {
1808       ShenandoahConcurrentRootsEvacUpdateTask task(!ShenandoahConcurrentRoots::should_do_concurrent_class_unloading());
1809       workers()->run_task(&task);
1810     }
1811   }
1812 
1813   set_concurrent_root_in_progress(false);
1814 }
1815 
1816 void ShenandoahHeap::op_reset() {
1817   if (ShenandoahPacing) {
1818     pacer()->setup_for_reset();
1819   }
1820   reset_mark_bitmap();
1821 }
1822 
1823 void ShenandoahHeap::op_preclean() {
1824   if (ShenandoahPacing) {
1825     pacer()->setup_for_preclean();
1826   }
1827   concurrent_mark()->preclean_weak_refs();
1828 }
1829 
1830 void ShenandoahHeap::op_init_traversal() {
1831   traversal_gc()->init_traversal_collection();
1832 }
1833 
1834 void ShenandoahHeap::op_traversal() {
1835   traversal_gc()->concurrent_traversal_collection();
1836 }
1837 
1838 void ShenandoahHeap::op_final_traversal() {
1839   traversal_gc()->final_traversal_collection();
1840 }
1841 
1842 void ShenandoahHeap::op_full(GCCause::Cause cause) {
1843   ShenandoahMetricsSnapshot metrics;
1844   metrics.snap_before();
1845 
1846   full_gc()->do_it(cause);


< prev index next >