comparison src/share/vm/gc_implementation/g1/concurrentMark.hpp @ 936:e1fdf4fd34dc

6871111: G1: remove the concurrent overhead tracker Summary: Removing the concurrent overhead tracker from G1, along with the GC overhead reporter and the G1AccountConcurrentOverhead (both of which rely on the the concurrent overhead tracker). Reviewed-by: iveresov, johnc
author tonyp
date Wed, 19 Aug 2009 12:53:25 -0400
parents df6caf649ff7
children 035d2e036a9b
comparison
equal deleted inserted replaced
912:308762b2bf14 936:e1fdf4fd34dc
405 volatile bool _concurrent_marking_in_progress; 405 volatile bool _concurrent_marking_in_progress;
406 406
407 // verbose level 407 // verbose level
408 CMVerboseLevel _verbose_level; 408 CMVerboseLevel _verbose_level;
409 409
410 COTracker _cleanup_co_tracker;
411
412 // These two fields are used to implement the optimisation that 410 // These two fields are used to implement the optimisation that
413 // avoids pushing objects on the global/region stack if there are 411 // avoids pushing objects on the global/region stack if there are
414 // no collection set regions above the lowest finger. 412 // no collection set regions above the lowest finger.
415 413
416 // This is the lowest finger (among the global and local fingers), 414 // This is the lowest finger (among the global and local fingers),
718 inline bool should_yield(); 716 inline bool should_yield();
719 717
720 // Called to abort the marking cycle after a Full GC takes palce. 718 // Called to abort the marking cycle after a Full GC takes palce.
721 void abort(); 719 void abort();
722 720
723 void disable_co_trackers();
724
725 // This prints the global/local fingers. It is used for debugging. 721 // This prints the global/local fingers. It is used for debugging.
726 NOT_PRODUCT(void print_finger();) 722 NOT_PRODUCT(void print_finger();)
727 723
728 void print_summary_info(); 724 void print_summary_info();
729 725
771 bool _claimed; 767 bool _claimed;
772 768
773 // number of calls to this task 769 // number of calls to this task
774 int _calls; 770 int _calls;
775 771
776 // concurrent overhead over a single CPU for this task
777 COTracker _co_tracker;
778
779 // when the virtual timer reaches this time, the marking step should 772 // when the virtual timer reaches this time, the marking step should
780 // exit 773 // exit
781 double _time_target_ms; 774 double _time_target_ms;
782 // the start time of the current marking step 775 // the start time of the current marking step
783 double _start_time_ms; 776 double _start_time_ms;
925 void reset(CMBitMap* _nextMarkBitMap); 918 void reset(CMBitMap* _nextMarkBitMap);
926 // it clears all the fields that correspond to a claimed region. 919 // it clears all the fields that correspond to a claimed region.
927 void clear_region_fields(); 920 void clear_region_fields();
928 921
929 void set_concurrent(bool concurrent) { _concurrent = concurrent; } 922 void set_concurrent(bool concurrent) { _concurrent = concurrent; }
930
931 void enable_co_tracker() {
932 guarantee( !_co_tracker.enabled(), "invariant" );
933 _co_tracker.enable();
934 }
935 void disable_co_tracker() {
936 guarantee( _co_tracker.enabled(), "invariant" );
937 _co_tracker.disable();
938 }
939 bool co_tracker_enabled() {
940 return _co_tracker.enabled();
941 }
942 void reset_co_tracker(double starting_conc_overhead = 0.0) {
943 _co_tracker.reset(starting_conc_overhead);
944 }
945 void start_co_tracker() {
946 _co_tracker.start();
947 }
948 void update_co_tracker(bool force_end = false) {
949 _co_tracker.update(force_end);
950 }
951 923
952 // The main method of this class which performs a marking step 924 // The main method of this class which performs a marking step
953 // trying not to exceed the given duration. However, it might exit 925 // trying not to exceed the given duration. However, it might exit
954 // prematurely, according to some conditions (i.e. SATB buffers are 926 // prematurely, according to some conditions (i.e. SATB buffers are
955 // available for processing). 927 // available for processing).