Mercurial > hg > graal-compiler
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 } |