src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp

Print this page
rev 3618 : 7193946: Move warnings associated with UseMemSetInBOT flag
Summary: The warnings associated with the UseMemSetInBOT flag are duplicated in CMS and G1. The separate warnings have been removed and single instance of the warning has been placed in a common location.
Reviewed-by:


 772     }
 773   }
 774   assert(   (   _survivor_plab_array  != NULL
 775              && _survivor_chunk_array != NULL)
 776          || (   _survivor_chunk_capacity == 0
 777              && _survivor_chunk_index == 0),
 778          "Error");
 779 
 780   // Choose what strong roots should be scanned depending on verification options
 781   if (!CMSClassUnloadingEnabled) {
 782     // If class unloading is disabled we want to include all classes into the root set.
 783     add_root_scanning_option(SharedHeap::SO_AllClasses);
 784   } else {
 785     add_root_scanning_option(SharedHeap::SO_SystemClasses);
 786   }
 787 
 788   NOT_PRODUCT(_overflow_counter = CMSMarkStackOverflowInterval;)
 789   _gc_counters = new CollectorCounters("CMS", 1);
 790   _completed_initialization = true;
 791   _inter_sweep_timer.start();  // start of time
 792 #ifdef SPARC
 793   // Issue a stern warning, but allow use for experimentation and debugging.
 794   if (VM_Version::is_sun4v() && UseMemSetInBOT) {
 795     assert(!FLAG_IS_DEFAULT(UseMemSetInBOT), "Error");
 796     warning("Experimental flag -XX:+UseMemSetInBOT is known to cause instability"
 797             " on sun4v; please understand that you are using at your own risk!");
 798   }
 799 #endif
 800 }
 801 
 802 const char* ConcurrentMarkSweepGeneration::name() const {
 803   return "concurrent mark-sweep generation";
 804 }
 805 void ConcurrentMarkSweepGeneration::update_counters() {
 806   if (UsePerfData) {
 807     _space_counters->update_all();
 808     _gen_counters->update_all();
 809   }
 810 }
 811 
 812 // this is an optimized version of update_counters(). it takes the
 813 // used value as a parameter rather than computing it.
 814 //
 815 void ConcurrentMarkSweepGeneration::update_counters(size_t used) {
 816   if (UsePerfData) {
 817     _space_counters->update_used(used);
 818     _space_counters->update_capacity();
 819     _gen_counters->update_all();




 772     }
 773   }
 774   assert(   (   _survivor_plab_array  != NULL
 775              && _survivor_chunk_array != NULL)
 776          || (   _survivor_chunk_capacity == 0
 777              && _survivor_chunk_index == 0),
 778          "Error");
 779 
 780   // Choose what strong roots should be scanned depending on verification options
 781   if (!CMSClassUnloadingEnabled) {
 782     // If class unloading is disabled we want to include all classes into the root set.
 783     add_root_scanning_option(SharedHeap::SO_AllClasses);
 784   } else {
 785     add_root_scanning_option(SharedHeap::SO_SystemClasses);
 786   }
 787 
 788   NOT_PRODUCT(_overflow_counter = CMSMarkStackOverflowInterval;)
 789   _gc_counters = new CollectorCounters("CMS", 1);
 790   _completed_initialization = true;
 791   _inter_sweep_timer.start();  // start of time








 792 }
 793 
 794 const char* ConcurrentMarkSweepGeneration::name() const {
 795   return "concurrent mark-sweep generation";
 796 }
 797 void ConcurrentMarkSweepGeneration::update_counters() {
 798   if (UsePerfData) {
 799     _space_counters->update_all();
 800     _gen_counters->update_all();
 801   }
 802 }
 803 
 804 // this is an optimized version of update_counters(). it takes the
 805 // used value as a parameter rather than computing it.
 806 //
 807 void ConcurrentMarkSweepGeneration::update_counters(size_t used) {
 808   if (UsePerfData) {
 809     _space_counters->update_used(used);
 810     _space_counters->update_capacity();
 811     _gen_counters->update_all();