Mercurial > hg > truffle
comparison src/share/vm/memory/space.hpp @ 7448:b735136e0d82
8004132: SerialGC: ValidateMarkSweep broken when running GCOld
Summary: Remove bit-rotten ValidateMarkSweep functionality and flag.
Reviewed-by: johnc, jmasa
Contributed-by: tamao <tao.mao@oracle.com>
author | johnc |
---|---|
date | Wed, 02 Jan 2013 11:32:41 -0800 |
parents | da91efe96a93 |
children | db9981fd3124 |
comparison
equal
deleted
inserted
replaced
7447:1de1b145f6bc | 7448:b735136e0d82 |
---|---|
653 * after their pointers have been \ | 653 * after their pointers have been \ |
654 * updated, until the actual compaction is done. dld, 4/00 */ \ | 654 * updated, until the actual compaction is done. dld, 4/00 */ \ |
655 assert(block_is_obj(q), \ | 655 assert(block_is_obj(q), \ |
656 "should be at block boundaries, and should be looking at objs"); \ | 656 "should be at block boundaries, and should be looking at objs"); \ |
657 \ | 657 \ |
658 VALIDATE_MARK_SWEEP_ONLY(MarkSweep::track_interior_pointers(oop(q))); \ | |
659 \ | |
660 /* point all the oops to the new location */ \ | 658 /* point all the oops to the new location */ \ |
661 size_t size = oop(q)->adjust_pointers(); \ | 659 size_t size = oop(q)->adjust_pointers(); \ |
662 size = adjust_obj_size(size); \ | 660 size = adjust_obj_size(size); \ |
663 \ | |
664 VALIDATE_MARK_SWEEP_ONLY(MarkSweep::check_interior_pointers()); \ | |
665 \ | |
666 VALIDATE_MARK_SWEEP_ONLY(MarkSweep::validate_live_oop(oop(q), size)); \ | |
667 \ | 661 \ |
668 q += size; \ | 662 q += size; \ |
669 } \ | 663 } \ |
670 \ | 664 \ |
671 if (_first_dead == t) { \ | 665 if (_first_dead == t) { \ |
683 while (q < t) { \ | 677 while (q < t) { \ |
684 /* prefetch beyond q */ \ | 678 /* prefetch beyond q */ \ |
685 Prefetch::write(q, interval); \ | 679 Prefetch::write(q, interval); \ |
686 if (oop(q)->is_gc_marked()) { \ | 680 if (oop(q)->is_gc_marked()) { \ |
687 /* q is alive */ \ | 681 /* q is alive */ \ |
688 VALIDATE_MARK_SWEEP_ONLY(MarkSweep::track_interior_pointers(oop(q))); \ | |
689 /* point all the oops to the new location */ \ | 682 /* point all the oops to the new location */ \ |
690 size_t size = oop(q)->adjust_pointers(); \ | 683 size_t size = oop(q)->adjust_pointers(); \ |
691 size = adjust_obj_size(size); \ | 684 size = adjust_obj_size(size); \ |
692 VALIDATE_MARK_SWEEP_ONLY(MarkSweep::check_interior_pointers()); \ | |
693 VALIDATE_MARK_SWEEP_ONLY(MarkSweep::validate_live_oop(oop(q), size)); \ | |
694 debug_only(prev_q = q); \ | 685 debug_only(prev_q = q); \ |
695 q += size; \ | 686 q += size; \ |
696 } else { \ | 687 } else { \ |
697 /* q is not a live object, so its mark should point at the next \ | 688 /* q is not a live object, so its mark should point at the next \ |
698 * live object */ \ | 689 * live object */ \ |
723 \ | 714 \ |
724 while (q < end) { \ | 715 while (q < end) { \ |
725 size_t size = obj_size(q); \ | 716 size_t size = obj_size(q); \ |
726 assert(!oop(q)->is_gc_marked(), \ | 717 assert(!oop(q)->is_gc_marked(), \ |
727 "should be unmarked (special dense prefix handling)"); \ | 718 "should be unmarked (special dense prefix handling)"); \ |
728 VALIDATE_MARK_SWEEP_ONLY(MarkSweep::live_oop_moved_to(q, size, q)); \ | |
729 debug_only(prev_q = q); \ | 719 debug_only(prev_q = q); \ |
730 q += size; \ | 720 q += size; \ |
731 } \ | 721 } \ |
732 ) /* debug_only */ \ | 722 ) /* debug_only */ \ |
733 \ | 723 \ |
757 \ | 747 \ |
758 /* prefetch beyond compaction_top */ \ | 748 /* prefetch beyond compaction_top */ \ |
759 Prefetch::write(compaction_top, copy_interval); \ | 749 Prefetch::write(compaction_top, copy_interval); \ |
760 \ | 750 \ |
761 /* copy object and reinit its mark */ \ | 751 /* copy object and reinit its mark */ \ |
762 VALIDATE_MARK_SWEEP_ONLY(MarkSweep::live_oop_moved_to(q, size, \ | |
763 compaction_top)); \ | |
764 assert(q != compaction_top, "everything in this pass should be moving"); \ | 752 assert(q != compaction_top, "everything in this pass should be moving"); \ |
765 Copy::aligned_conjoint_words(q, compaction_top, size); \ | 753 Copy::aligned_conjoint_words(q, compaction_top, size); \ |
766 oop(compaction_top)->init_mark(); \ | 754 oop(compaction_top)->init_mark(); \ |
767 assert(oop(compaction_top)->klass() != NULL, "should have a class"); \ | 755 assert(oop(compaction_top)->klass() != NULL, "should have a class"); \ |
768 \ | 756 \ |