Mercurial > hg > graal-jvmci-8
comparison src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp @ 20257:7426d8d76305
8034761: Remove the do_code_roots parameter from process_strong_roots
Reviewed-by: tschatzl, mgerdin, jmasa
author | stefank |
---|---|
date | Thu, 13 Feb 2014 17:44:39 +0100 |
parents | 9fec19bb0659 |
children | 30c99d8e0f02 |
comparison
equal
deleted
inserted
replaced
20256:b0b97602393a | 20257:7426d8d76305 |
---|---|
3038 gch->gen_process_strong_roots(_cmsGen->level(), | 3038 gch->gen_process_strong_roots(_cmsGen->level(), |
3039 true, // younger gens are roots | 3039 true, // younger gens are roots |
3040 true, // activate StrongRootsScope | 3040 true, // activate StrongRootsScope |
3041 SharedHeap::ScanningOption(roots_scanning_options()), | 3041 SharedHeap::ScanningOption(roots_scanning_options()), |
3042 ¬Older, | 3042 ¬Older, |
3043 true, // walk code active on stacks | |
3044 NULL, | 3043 NULL, |
3045 NULL); // SSS: Provide correct closure | 3044 NULL); // SSS: Provide correct closure |
3046 | 3045 |
3047 // Now mark from the roots | 3046 // Now mark from the roots |
3048 MarkFromRootsClosure markFromRootsClosure(this, _span, | 3047 MarkFromRootsClosure markFromRootsClosure(this, _span, |
3105 gch->gen_process_strong_roots(_cmsGen->level(), | 3104 gch->gen_process_strong_roots(_cmsGen->level(), |
3106 true, // younger gens are roots | 3105 true, // younger gens are roots |
3107 true, // activate StrongRootsScope | 3106 true, // activate StrongRootsScope |
3108 SharedHeap::ScanningOption(roots_scanning_options()), | 3107 SharedHeap::ScanningOption(roots_scanning_options()), |
3109 ¬Older, | 3108 ¬Older, |
3110 true, // walk code active on stacks | |
3111 NULL, | 3109 NULL, |
3112 &klass_closure); | 3110 &klass_closure); |
3113 | 3111 |
3114 // Now mark from the roots | 3112 // Now mark from the roots |
3115 MarkFromRootsVerifyClosure markFromRootsClosure(this, _span, | 3113 MarkFromRootsVerifyClosure markFromRootsClosure(this, _span, |
3684 } | 3682 } |
3685 | 3683 |
3686 ResourceMark rm; | 3684 ResourceMark rm; |
3687 HandleMark hm; | 3685 HandleMark hm; |
3688 | 3686 |
3689 FalseClosure falseClosure; | |
3690 // In the case of a synchronous collection, we will elide the | |
3691 // remark step, so it's important to catch all the nmethod oops | |
3692 // in this step. | |
3693 // The final 'true' flag to gen_process_strong_roots will ensure this. | |
3694 // If 'async' is true, we can relax the nmethod tracing. | |
3695 MarkRefsIntoClosure notOlder(_span, &_markBitMap); | 3687 MarkRefsIntoClosure notOlder(_span, &_markBitMap); |
3696 GenCollectedHeap* gch = GenCollectedHeap::heap(); | 3688 GenCollectedHeap* gch = GenCollectedHeap::heap(); |
3697 | 3689 |
3698 verify_work_stacks_empty(); | 3690 verify_work_stacks_empty(); |
3699 verify_overflow_empty(); | 3691 verify_overflow_empty(); |
3742 gch->gen_process_strong_roots(_cmsGen->level(), | 3734 gch->gen_process_strong_roots(_cmsGen->level(), |
3743 true, // younger gens are roots | 3735 true, // younger gens are roots |
3744 true, // activate StrongRootsScope | 3736 true, // activate StrongRootsScope |
3745 SharedHeap::ScanningOption(roots_scanning_options()), | 3737 SharedHeap::ScanningOption(roots_scanning_options()), |
3746 ¬Older, | 3738 ¬Older, |
3747 true, // walk all of code cache if (so & SO_AllCodeCache) | |
3748 NULL, | 3739 NULL, |
3749 &klass_closure); | 3740 &klass_closure); |
3750 } | 3741 } |
3751 } | 3742 } |
3752 | 3743 |
5241 gch->gen_process_strong_roots(_collector->_cmsGen->level(), | 5232 gch->gen_process_strong_roots(_collector->_cmsGen->level(), |
5242 false, // yg was scanned above | 5233 false, // yg was scanned above |
5243 false, // this is parallel code | 5234 false, // this is parallel code |
5244 SharedHeap::ScanningOption(_collector->CMSCollector::roots_scanning_options()), | 5235 SharedHeap::ScanningOption(_collector->CMSCollector::roots_scanning_options()), |
5245 &par_mri_cl, | 5236 &par_mri_cl, |
5246 true, // walk all of code cache if (so & SO_AllCodeCache) | |
5247 NULL, | 5237 NULL, |
5248 &klass_closure); | 5238 &klass_closure); |
5249 assert(_collector->should_unload_classes() | 5239 assert(_collector->should_unload_classes() |
5250 || (_collector->CMSCollector::roots_scanning_options() & SharedHeap::SO_AllCodeCache), | 5240 || (_collector->CMSCollector::roots_scanning_options() & SharedHeap::SO_AllCodeCache), |
5251 "if we didn't scan the code cache, we have to be ready to drop nmethods with expired weak oops"); | 5241 "if we didn't scan the code cache, we have to be ready to drop nmethods with expired weak oops"); |
5377 gch->gen_process_strong_roots(_collector->_cmsGen->level(), | 5367 gch->gen_process_strong_roots(_collector->_cmsGen->level(), |
5378 false, // yg was scanned above | 5368 false, // yg was scanned above |
5379 false, // this is parallel code | 5369 false, // this is parallel code |
5380 SharedHeap::ScanningOption(_collector->CMSCollector::roots_scanning_options()), | 5370 SharedHeap::ScanningOption(_collector->CMSCollector::roots_scanning_options()), |
5381 &par_mrias_cl, | 5371 &par_mrias_cl, |
5382 true, // walk all of code cache if (so & SO_AllCodeCache) | |
5383 NULL, | 5372 NULL, |
5384 NULL); // The dirty klasses will be handled below | 5373 NULL); // The dirty klasses will be handled below |
5385 assert(_collector->should_unload_classes() | 5374 assert(_collector->should_unload_classes() |
5386 || (_collector->CMSCollector::roots_scanning_options() & SharedHeap::SO_AllCodeCache), | 5375 || (_collector->CMSCollector::roots_scanning_options() & SharedHeap::SO_AllCodeCache), |
5387 "if we didn't scan the code cache, we have to be ready to drop nmethods with expired weak oops"); | 5376 "if we didn't scan the code cache, we have to be ready to drop nmethods with expired weak oops"); |
5967 gch->gen_process_strong_roots(_cmsGen->level(), | 5956 gch->gen_process_strong_roots(_cmsGen->level(), |
5968 true, // younger gens as roots | 5957 true, // younger gens as roots |
5969 false, // use the local StrongRootsScope | 5958 false, // use the local StrongRootsScope |
5970 SharedHeap::ScanningOption(roots_scanning_options()), | 5959 SharedHeap::ScanningOption(roots_scanning_options()), |
5971 &mrias_cl, | 5960 &mrias_cl, |
5972 true, // walk code active on stacks | |
5973 NULL, | 5961 NULL, |
5974 NULL); // The dirty klasses will be handled below | 5962 NULL); // The dirty klasses will be handled below |
5975 | 5963 |
5976 assert(should_unload_classes() | 5964 assert(should_unload_classes() |
5977 || (roots_scanning_options() & SharedHeap::SO_AllCodeCache), | 5965 || (roots_scanning_options() & SharedHeap::SO_AllCodeCache), |