equal
deleted
inserted
replaced
2778 |
2778 |
2779 // Finally flush all remembered set entries to re-check into the global DCQS. |
2779 // Finally flush all remembered set entries to re-check into the global DCQS. |
2780 cl.flush_rem_set_entries(); |
2780 cl.flush_rem_set_entries(); |
2781 } |
2781 } |
2782 |
2782 |
|
2783 #ifndef PRODUCT |
|
2784 void G1CollectedHeap::verify_region_attr_remset_update() { |
|
2785 class VerifyRegionAttrRemSet : public HeapRegionClosure { |
|
2786 public: |
|
2787 virtual bool do_heap_region(HeapRegion* r) { |
|
2788 G1CollectedHeap* g1h = G1CollectedHeap::heap(); |
|
2789 bool const needs_remset_update = g1h->region_attr(r->bottom()).needs_remset_update(); |
|
2790 assert(r->rem_set()->is_tracked() == needs_remset_update, |
|
2791 "Region %u remset tracking status (%s) different to region attribute (%s)", |
|
2792 r->hrm_index(), BOOL_TO_STR(r->rem_set()->is_tracked()), BOOL_TO_STR(needs_remset_update)); |
|
2793 return false; |
|
2794 } |
|
2795 } cl; |
|
2796 heap_region_iterate(&cl); |
|
2797 } |
|
2798 #endif |
|
2799 |
2783 class VerifyRegionRemSetClosure : public HeapRegionClosure { |
2800 class VerifyRegionRemSetClosure : public HeapRegionClosure { |
2784 public: |
2801 public: |
2785 bool do_heap_region(HeapRegion* hr) { |
2802 bool do_heap_region(HeapRegion* hr) { |
2786 if (!hr->is_archive() && !hr->is_continues_humongous()) { |
2803 if (!hr->is_archive() && !hr->is_continues_humongous()) { |
2787 hr->verify_rem_set(); |
2804 hr->verify_rem_set(); |
3057 collection_set()->optional_region_length()); |
3074 collection_set()->optional_region_length()); |
3058 pre_evacuate_collection_set(evacuation_info); |
3075 pre_evacuate_collection_set(evacuation_info); |
3059 |
3076 |
3060 // Actually do the work... |
3077 // Actually do the work... |
3061 evacuate_initial_collection_set(&per_thread_states); |
3078 evacuate_initial_collection_set(&per_thread_states); |
|
3079 |
3062 if (_collection_set.optional_region_length() != 0) { |
3080 if (_collection_set.optional_region_length() != 0) { |
3063 evacuate_optional_collection_set(&per_thread_states); |
3081 evacuate_optional_collection_set(&per_thread_states); |
3064 } |
3082 } |
3065 post_evacuate_collection_set(evacuation_info, &per_thread_states); |
3083 post_evacuate_collection_set(evacuation_info, &per_thread_states); |
3066 |
3084 |