mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-21 11:34:38 +02:00
6885169: merge of 4957990 and 6863023 causes conflict on do_nmethods
After mechanically merging changes, some by-hand adjustments are needed. Reviewed-by: ysr
This commit is contained in:
parent
40d52710f6
commit
eb73cf4739
7 changed files with 23 additions and 32 deletions
|
@ -47,13 +47,10 @@ class MarkRefsIntoClosure: public OopsInGenClosure {
|
|||
private:
|
||||
const MemRegion _span;
|
||||
CMSBitMap* _bitMap;
|
||||
const bool _should_do_nmethods;
|
||||
protected:
|
||||
DO_OOP_WORK_DEFN
|
||||
public:
|
||||
MarkRefsIntoClosure(MemRegion span, CMSBitMap* bitMap,
|
||||
bool should_do_nmethods);
|
||||
bool should_do_nmethods() { return _should_do_nmethods; }
|
||||
MarkRefsIntoClosure(MemRegion span, CMSBitMap* bitMap);
|
||||
virtual void do_oop(oop* p);
|
||||
virtual void do_oop(narrowOop* p);
|
||||
inline void do_oop_nv(oop* p) { MarkRefsIntoClosure::do_oop_work(p); }
|
||||
|
@ -71,13 +68,11 @@ class MarkRefsIntoVerifyClosure: public OopsInGenClosure {
|
|||
const MemRegion _span;
|
||||
CMSBitMap* _verification_bm;
|
||||
CMSBitMap* _cms_bm;
|
||||
const bool _should_do_nmethods;
|
||||
protected:
|
||||
DO_OOP_WORK_DEFN
|
||||
public:
|
||||
MarkRefsIntoVerifyClosure(MemRegion span, CMSBitMap* verification_bm,
|
||||
CMSBitMap* cms_bm, bool should_do_nmethods);
|
||||
bool should_do_nmethods() { return _should_do_nmethods; }
|
||||
CMSBitMap* cms_bm);
|
||||
virtual void do_oop(oop* p);
|
||||
virtual void do_oop(narrowOop* p);
|
||||
inline void do_oop_nv(oop* p) { MarkRefsIntoVerifyClosure::do_oop_work(p); }
|
||||
|
@ -268,7 +263,6 @@ class Par_MarkRefsIntoAndScanClosure: public OopsInGenClosure {
|
|||
inline void do_oop_nv(oop* p) { Par_MarkRefsIntoAndScanClosure::do_oop_work(p); }
|
||||
inline void do_oop_nv(narrowOop* p) { Par_MarkRefsIntoAndScanClosure::do_oop_work(p); }
|
||||
bool do_header() { return true; }
|
||||
virtual const bool do_nmethods() const { return true; }
|
||||
// When ScanMarkedObjectsAgainClosure is used,
|
||||
// it passes [Par_]MarkRefsIntoAndScanClosure to oop_oop_iterate(),
|
||||
// and this delegation is used.
|
||||
|
|
|
@ -2852,7 +2852,7 @@ void CMSCollector::verify_after_remark_work_1() {
|
|||
GenCollectedHeap* gch = GenCollectedHeap::heap();
|
||||
|
||||
// Mark from roots one level into CMS
|
||||
MarkRefsIntoClosure notOlder(_span, verification_mark_bm(), true /* nmethods */);
|
||||
MarkRefsIntoClosure notOlder(_span, verification_mark_bm());
|
||||
gch->rem_set()->prepare_for_younger_refs_iterate(false); // Not parallel.
|
||||
|
||||
gch->gen_process_strong_roots(_cmsGen->level(),
|
||||
|
@ -2904,7 +2904,7 @@ void CMSCollector::verify_after_remark_work_2() {
|
|||
|
||||
// Mark from roots one level into CMS
|
||||
MarkRefsIntoVerifyClosure notOlder(_span, verification_mark_bm(),
|
||||
markBitMap(), true /* nmethods */);
|
||||
markBitMap());
|
||||
gch->rem_set()->prepare_for_younger_refs_iterate(false); // Not parallel.
|
||||
gch->gen_process_strong_roots(_cmsGen->level(),
|
||||
true, // younger gens are roots
|
||||
|
@ -3490,8 +3490,10 @@ void CMSCollector::checkpointRootsInitialWork(bool asynch) {
|
|||
FalseClosure falseClosure;
|
||||
// In the case of a synchronous collection, we will elide the
|
||||
// remark step, so it's important to catch all the nmethod oops
|
||||
// in this step; hence the last argument to the constrcutor below.
|
||||
MarkRefsIntoClosure notOlder(_span, &_markBitMap, !asynch /* nmethods */);
|
||||
// in this step.
|
||||
// The final 'true' flag to gen_process_strong_roots will ensure this.
|
||||
// If 'async' is true, we can relax the nmethod tracing.
|
||||
MarkRefsIntoClosure notOlder(_span, &_markBitMap);
|
||||
GenCollectedHeap* gch = GenCollectedHeap::heap();
|
||||
|
||||
verify_work_stacks_empty();
|
||||
|
@ -6441,10 +6443,9 @@ void CMSMarkStack::expand() {
|
|||
// generation then this will lose younger_gen cards!
|
||||
|
||||
MarkRefsIntoClosure::MarkRefsIntoClosure(
|
||||
MemRegion span, CMSBitMap* bitMap, bool should_do_nmethods):
|
||||
MemRegion span, CMSBitMap* bitMap):
|
||||
_span(span),
|
||||
_bitMap(bitMap),
|
||||
_should_do_nmethods(should_do_nmethods)
|
||||
_bitMap(bitMap)
|
||||
{
|
||||
assert(_ref_processor == NULL, "deliberately left NULL");
|
||||
assert(_bitMap->covers(_span), "_bitMap/_span mismatch");
|
||||
|
@ -6465,12 +6466,11 @@ void MarkRefsIntoClosure::do_oop(narrowOop* p) { MarkRefsIntoClosure::do_oop_wor
|
|||
|
||||
// A variant of the above, used for CMS marking verification.
|
||||
MarkRefsIntoVerifyClosure::MarkRefsIntoVerifyClosure(
|
||||
MemRegion span, CMSBitMap* verification_bm, CMSBitMap* cms_bm,
|
||||
bool should_do_nmethods):
|
||||
MemRegion span, CMSBitMap* verification_bm, CMSBitMap* cms_bm):
|
||||
_span(span),
|
||||
_verification_bm(verification_bm),
|
||||
_cms_bm(cms_bm),
|
||||
_should_do_nmethods(should_do_nmethods) {
|
||||
_cms_bm(cms_bm)
|
||||
{
|
||||
assert(_ref_processor == NULL, "deliberately left NULL");
|
||||
assert(_verification_bm->covers(_span), "_verification_bm/_span mismatch");
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue