788 static void print_taskqueue_stats_hdr(outputStream* const st = gclog_or_tty); 789 void print_taskqueue_stats(outputStream* const st = gclog_or_tty) const; 790 void reset_taskqueue_stats(); 791 #endif // TASKQUEUE_STATS 792 793 // Schedule the VM operation that will do an evacuation pause to 794 // satisfy an allocation request of word_size. *succeeded will 795 // return whether the VM operation was successful (it did do an 796 // evacuation pause) or not (another thread beat us to it or the GC 797 // locker was active). Given that we should not be holding the 798 // Heap_lock when we enter this method, we will pass the 799 // gc_count_before (i.e., total_collections()) as a parameter since 800 // it has to be read while holding the Heap_lock. Currently, both 801 // methods that call do_collection_pause() release the Heap_lock 802 // before the call, so it's easy to read gc_count_before just before. 803 HeapWord* do_collection_pause(size_t word_size, 804 uint gc_count_before, 805 bool* succeeded, 806 GCCause::Cause gc_cause); 807 808 // The guts of the incremental collection pause, executed by the vm 809 // thread. It returns false if it is unable to do the collection due 810 // to the GC locker being active, true otherwise 811 bool do_collection_pause_at_safepoint(double target_pause_time_ms); 812 813 // Actually do the work of evacuating the collection set. 814 void evacuate_collection_set(EvacuationInfo& evacuation_info); 815 816 // The g1 remembered set of the heap. 817 G1RemSet* _g1_rem_set; 818 819 // A set of cards that cover the objects for which the Rsets should be updated 820 // concurrently after the collection. 821 DirtyCardQueueSet _dirty_card_queue_set; 822 823 // The closure used to refine a single card. 824 RefineCardTableEntryClosure* _refine_cte_cl; 825 826 // A DirtyCardQueueSet that is used to hold cards that contain 827 // references into the current collection set. This is used to | 788 static void print_taskqueue_stats_hdr(outputStream* const st = gclog_or_tty); 789 void print_taskqueue_stats(outputStream* const st = gclog_or_tty) const; 790 void reset_taskqueue_stats(); 791 #endif // TASKQUEUE_STATS 792 793 // Schedule the VM operation that will do an evacuation pause to 794 // satisfy an allocation request of word_size. *succeeded will 795 // return whether the VM operation was successful (it did do an 796 // evacuation pause) or not (another thread beat us to it or the GC 797 // locker was active). Given that we should not be holding the 798 // Heap_lock when we enter this method, we will pass the 799 // gc_count_before (i.e., total_collections()) as a parameter since 800 // it has to be read while holding the Heap_lock. Currently, both 801 // methods that call do_collection_pause() release the Heap_lock 802 // before the call, so it's easy to read gc_count_before just before. 803 HeapWord* do_collection_pause(size_t word_size, 804 uint gc_count_before, 805 bool* succeeded, 806 GCCause::Cause gc_cause); 807 808 void wait_for_root_region_scanning(); 809 810 // The guts of the incremental collection pause, executed by the vm 811 // thread. It returns false if it is unable to do the collection due 812 // to the GC locker being active, true otherwise 813 bool do_collection_pause_at_safepoint(double target_pause_time_ms); 814 815 // Actually do the work of evacuating the collection set. 816 void evacuate_collection_set(EvacuationInfo& evacuation_info); 817 818 // The g1 remembered set of the heap. 819 G1RemSet* _g1_rem_set; 820 821 // A set of cards that cover the objects for which the Rsets should be updated 822 // concurrently after the collection. 823 DirtyCardQueueSet _dirty_card_queue_set; 824 825 // The closure used to refine a single card. 826 RefineCardTableEntryClosure* _refine_cte_cl; 827 828 // A DirtyCardQueueSet that is used to hold cards that contain 829 // references into the current collection set. This is used to |