Mercurial > hg > graal-jvmci-8
comparison src/share/vm/gc_interface/collectedHeap.hpp @ 1165:2dd52dea6d28
6902115: G1:assert(ignore_max_completed||thread->is_Java_thread()||SafepointSynchronize::is_at_safepoint())
Summary: Remove invalid assert and mangle filler objects in TLABs that are being retired.
Reviewed-by: ysr, jmasa
author | johnc |
---|---|
date | Tue, 12 Jan 2010 14:56:46 -0800 |
parents | 39b01ab7035a |
children | 7b0e9cba0307 |
comparison
equal
deleted
inserted
replaced
1149:0579c695832f | 1165:2dd52dea6d28 |
---|---|
125 static inline size_t filler_array_hdr_size(); | 125 static inline size_t filler_array_hdr_size(); |
126 static inline size_t filler_array_min_size(); | 126 static inline size_t filler_array_min_size(); |
127 static inline size_t filler_array_max_size(); | 127 static inline size_t filler_array_max_size(); |
128 | 128 |
129 DEBUG_ONLY(static void fill_args_check(HeapWord* start, size_t words);) | 129 DEBUG_ONLY(static void fill_args_check(HeapWord* start, size_t words);) |
130 DEBUG_ONLY(static void zap_filler_array(HeapWord* start, size_t words);) | 130 DEBUG_ONLY(static void zap_filler_array(HeapWord* start, size_t words, bool zap = true);) |
131 | 131 |
132 // Fill with a single array; caller must ensure filler_array_min_size() <= | 132 // Fill with a single array; caller must ensure filler_array_min_size() <= |
133 // words <= filler_array_max_size(). | 133 // words <= filler_array_max_size(). |
134 static inline void fill_with_array(HeapWord* start, size_t words); | 134 static inline void fill_with_array(HeapWord* start, size_t words, bool zap = true); |
135 | 135 |
136 // Fill with a single object (either an int array or a java.lang.Object). | 136 // Fill with a single object (either an int array or a java.lang.Object). |
137 static inline void fill_with_object_impl(HeapWord* start, size_t words); | 137 static inline void fill_with_object_impl(HeapWord* start, size_t words, bool zap = true); |
138 | 138 |
139 // Verification functions | 139 // Verification functions |
140 virtual void check_for_bad_heap_word_value(HeapWord* addr, size_t size) | 140 virtual void check_for_bad_heap_word_value(HeapWord* addr, size_t size) |
141 PRODUCT_RETURN; | 141 PRODUCT_RETURN; |
142 virtual void check_for_non_bad_heap_word_value(HeapWord* addr, size_t size) | 142 virtual void check_for_non_bad_heap_word_value(HeapWord* addr, size_t size) |
336 // region and has slightly less overhead. | 336 // region and has slightly less overhead. |
337 static size_t min_fill_size() { | 337 static size_t min_fill_size() { |
338 return size_t(align_object_size(oopDesc::header_size())); | 338 return size_t(align_object_size(oopDesc::header_size())); |
339 } | 339 } |
340 | 340 |
341 static void fill_with_objects(HeapWord* start, size_t words); | 341 static void fill_with_objects(HeapWord* start, size_t words, bool zap = true); |
342 | 342 |
343 static void fill_with_object(HeapWord* start, size_t words); | 343 static void fill_with_object(HeapWord* start, size_t words, bool zap = true); |
344 static void fill_with_object(MemRegion region) { | 344 static void fill_with_object(MemRegion region, bool zap = true) { |
345 fill_with_object(region.start(), region.word_size()); | 345 fill_with_object(region.start(), region.word_size(), zap); |
346 } | 346 } |
347 static void fill_with_object(HeapWord* start, HeapWord* end) { | 347 static void fill_with_object(HeapWord* start, HeapWord* end, bool zap = true) { |
348 fill_with_object(start, pointer_delta(end, start)); | 348 fill_with_object(start, pointer_delta(end, start), zap); |
349 } | 349 } |
350 | 350 |
351 // Some heaps may offer a contiguous region for shared non-blocking | 351 // Some heaps may offer a contiguous region for shared non-blocking |
352 // allocation, via inlined code (by exporting the address of the top and | 352 // allocation, via inlined code (by exporting the address of the top and |
353 // end fields defining the extent of the contiguous allocation region.) | 353 // end fields defining the extent of the contiguous allocation region.) |