comparison src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp @ 1518:3bfae429e2cf

6948537: CMS: BOT walkers observe out-of-thin-air zeros on sun4v sparc/CMT Summary: On sun4v/CMT avoid use of memset() in BOT updates so as to prevent concurrent BOT readers from seeing the phantom zeros arising from memset()'s use of BIS. Reviewed-by: jmasa, johnc, minqi, poonam, tonyp
author ysr
date Mon, 03 May 2010 10:24:51 -0700
parents 0bfd3fb24150
children bb843ebc7c55
comparison
equal deleted inserted replaced
1490:f03d0a26bf83 1518:3bfae429e2cf
787 787
788 NOT_PRODUCT(_overflow_counter = CMSMarkStackOverflowInterval;) 788 NOT_PRODUCT(_overflow_counter = CMSMarkStackOverflowInterval;)
789 _gc_counters = new CollectorCounters("CMS", 1); 789 _gc_counters = new CollectorCounters("CMS", 1);
790 _completed_initialization = true; 790 _completed_initialization = true;
791 _inter_sweep_timer.start(); // start of time 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
792 } 800 }
793 801
794 const char* ConcurrentMarkSweepGeneration::name() const { 802 const char* ConcurrentMarkSweepGeneration::name() const {
795 return "concurrent mark-sweep generation"; 803 return "concurrent mark-sweep generation";
796 } 804 }