< prev index next >

src/hotspot/share/gc/shared/collectedHeap.hpp

Print this page

        

*** 108,120 **** MemRegion _reserved; protected: bool _is_gc_active; - // Used for filler objects (static, but initialized in ctor). - static size_t _filler_array_max_size; - unsigned int _total_collections; // ... started unsigned int _total_full_collections; // ... started NOT_PRODUCT(volatile size_t _promotion_failure_alot_count;) NOT_PRODUCT(volatile size_t _promotion_failure_alot_gc_number;) --- 108,117 ----
*** 145,167 **** // mem_allocate() should never be // called to allocate TLABs, only individual objects. virtual HeapWord* mem_allocate(size_t size, bool* gc_overhead_limit_was_exceeded) = 0; - // Filler object utilities. - static inline size_t filler_array_hdr_size(); - static inline size_t filler_array_min_size(); - - DEBUG_ONLY(static void fill_args_check(HeapWord* start, size_t words);) - DEBUG_ONLY(static void zap_filler_array(HeapWord* start, size_t words, bool zap = true);) - - // Fill with a single array; caller must ensure filler_array_min_size() <= - // words <= filler_array_max_size(). - static inline void fill_with_array(HeapWord* start, size_t words, bool zap = true); - - // Fill with a single object (either an int array or a java.lang.Object). - static inline void fill_with_object_impl(HeapWord* start, size_t words, bool zap = true); virtual void trace_heap(GCWhen::Type when, const GCTracer* tracer); // Verification functions virtual void check_for_non_bad_heap_word_value(HeapWord* addr, size_t size) --- 142,151 ----
*** 177,190 **** G1, Epsilon, Z }; - static inline size_t filler_array_max_size() { - return _filler_array_max_size; - } - virtual Name kind() const = 0; virtual const char* name() const = 0; /** --- 161,170 ----
*** 285,319 **** virtual oop obj_allocate(Klass* klass, int size, TRAPS); virtual oop array_allocate(Klass* klass, int size, int length, bool do_zero, TRAPS); virtual oop class_allocate(Klass* klass, int size, TRAPS); - // Utilities for turning raw memory into filler objects. - // - // min_fill_size() is the smallest region that can be filled. - // fill_with_objects() can fill arbitrary-sized regions of the heap using - // multiple objects. fill_with_object() is for regions known to be smaller - // than the largest array of integers; it uses a single object to fill the - // region and has slightly less overhead. - static size_t min_fill_size() { - return size_t(align_object_size(oopDesc::header_size())); - } - - static void fill_with_objects(HeapWord* start, size_t words, bool zap = true); - - static void fill_with_object(HeapWord* start, size_t words, bool zap = true); - static void fill_with_object(MemRegion region, bool zap = true) { - fill_with_object(region.start(), region.word_size(), zap); - } - static void fill_with_object(HeapWord* start, HeapWord* end, bool zap = true) { - fill_with_object(start, pointer_delta(end, start), zap); - } - - virtual void fill_with_dummy_object(HeapWord* start, HeapWord* end, bool zap); - virtual size_t min_dummy_object_size() const; - size_t tlab_alloc_reserve() const; - // Return the address "addr" aligned by "alignment_in_bytes" if such // an address is below "end". Return NULL otherwise. inline static HeapWord* align_allocation_or_fail(HeapWord* addr, HeapWord* end, unsigned short alignment_in_bytes); --- 265,274 ----
< prev index next >