Mercurial > hg > graal-compiler
comparison src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp @ 10940:d85bdcb38fa2
Apply patch by Mikael Gerdin which fixes filtered strong marking of nmethods
author | Christos Kotselidis <christos.kotselidis@oracle.com> |
---|---|
date | Fri, 02 Aug 2013 13:35:13 +0200 |
parents | 836a62f43af9 |
children | d0aeaf72c7bd |
comparison
equal
deleted
inserted
replaced
10939:f22cbff51c12 | 10940:d85bdcb38fa2 |
---|---|
5125 | 5125 |
5126 BufferingOopClosure buf_scan_non_heap_roots(scan_non_heap_roots); | 5126 BufferingOopClosure buf_scan_non_heap_roots(scan_non_heap_roots); |
5127 | 5127 |
5128 // Walk the code cache w/o buffering, because StarTask cannot handle | 5128 // Walk the code cache w/o buffering, because StarTask cannot handle |
5129 // unaligned oop locations. | 5129 // unaligned oop locations. |
5130 G1FilteredCodeBlobToOopClosure eager_scan_code_roots(this, scan_non_heap_roots); | 5130 G1FilteredCodeBlobToOopClosure eager_scan_cs_code_roots(this, scan_non_heap_roots); |
5131 | |
5132 // Scan all code roots from stack | |
5133 CodeBlobToOopClosure eager_scan_all_code_roots(scan_non_heap_roots, true); | |
5134 CodeBlobToOopClosure* blobs = &eager_scan_cs_code_roots; | |
5135 if (UseNewCode && g1_policy()->during_initial_mark_pause()) { | |
5136 // during initial-mark we need to take care to follow all code roots | |
5137 blobs = &eager_scan_all_code_roots; | |
5138 } | |
5131 | 5139 |
5132 process_strong_roots(false, // no scoping; this is parallel code | 5140 process_strong_roots(false, // no scoping; this is parallel code |
5133 is_scavenging, so, | 5141 is_scavenging, so, |
5134 &buf_scan_non_heap_roots, | 5142 &buf_scan_non_heap_roots, |
5135 &eager_scan_code_roots, | 5143 blobs, |
5136 scan_klasses | 5144 scan_klasses |
5137 ); | 5145 ); |
5138 | 5146 |
5139 // Now the CM ref_processor roots. | 5147 // Now the CM ref_processor roots. |
5140 if (!_process_strong_tasks->is_task_claimed(G1H_PS_refProcessor_oops_do)) { | 5148 if (!_process_strong_tasks->is_task_claimed(G1H_PS_refProcessor_oops_do)) { |