comparison src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp @ 17976:8e20ef014b08

8043239: G1: Missing post barrier in processing of j.l.ref.Reference objects Summary: Removed all write barriers during reference processing and added explicit write barriers when iterating through the discovered list. Reviewed-by: pliden, jmasa, tschatzl
author brutisso
date Wed, 11 Jun 2014 10:46:47 +0200
parents e4d318eea75a
children a45a4f5a9609
comparison
equal deleted inserted replaced
17975:bd4d69d9cb7d 17976:8e20ef014b08
2256 // mt discovery 2256 // mt discovery
2257 (int) MAX2(ParallelGCThreads, ConcGCThreads), 2257 (int) MAX2(ParallelGCThreads, ConcGCThreads),
2258 // degree of mt discovery 2258 // degree of mt discovery
2259 false, 2259 false,
2260 // Reference discovery is not atomic 2260 // Reference discovery is not atomic
2261 &_is_alive_closure_cm, 2261 &_is_alive_closure_cm);
2262 // is alive closure 2262 // is alive closure
2263 // (for efficiency/performance) 2263 // (for efficiency/performance)
2264 true);
2265 // Setting next fields of discovered
2266 // lists requires a barrier.
2267 2264
2268 // STW ref processor 2265 // STW ref processor
2269 _ref_processor_stw = 2266 _ref_processor_stw =
2270 new ReferenceProcessor(mr, // span 2267 new ReferenceProcessor(mr, // span
2271 ParallelRefProcEnabled && (ParallelGCThreads > 1), 2268 ParallelRefProcEnabled && (ParallelGCThreads > 1),
2276 // mt discovery 2273 // mt discovery
2277 MAX2((int)ParallelGCThreads, 1), 2274 MAX2((int)ParallelGCThreads, 1),
2278 // degree of mt discovery 2275 // degree of mt discovery
2279 true, 2276 true,
2280 // Reference discovery is atomic 2277 // Reference discovery is atomic
2281 &_is_alive_closure_stw, 2278 &_is_alive_closure_stw);
2282 // is alive closure 2279 // is alive closure
2283 // (for efficiency/performance) 2280 // (for efficiency/performance)
2284 false);
2285 // Setting next fields of discovered
2286 // lists does not require a barrier.
2287 } 2281 }
2288 2282
2289 size_t G1CollectedHeap::capacity() const { 2283 size_t G1CollectedHeap::capacity() const {
2290 return _g1_committed.byte_size(); 2284 return _g1_committed.byte_size();
2291 } 2285 }