< prev index next >

src/share/vm/gc/shenandoah/shenandoahHeap.hpp

Print this page
rev 14453 : Remove secondary marking bitmap.

*** 133,144 **** ShenandoahHeapLock _lock; ShenandoahCollectorPolicy* _shenandoah_policy; size_t _bitmap_size; size_t _bitmap_words_per_region; MemRegion _heap_region; ! MemRegion _bitmap0_region; ! MemRegion _bitmap1_region; // Sortable array of regions ShenandoahHeapRegionSet* _ordered_regions; ShenandoahFreeSet* _free_regions; ShenandoahCollectionSet* _collection_set; --- 133,144 ---- ShenandoahHeapLock _lock; ShenandoahCollectorPolicy* _shenandoah_policy; size_t _bitmap_size; size_t _bitmap_words_per_region; MemRegion _heap_region; ! MemRegion _bitmap_region; ! MemRegion _aux_bitmap_region; // Sortable array of regions ShenandoahHeapRegionSet* _ordered_regions; ShenandoahFreeSet* _free_regions; ShenandoahCollectionSet* _collection_set;
*** 163,182 **** volatile size_t _used; volatile size_t _committed; MarkBitMap _verification_bit_map; ! MarkBitMap _mark_bit_map0; ! MarkBitMap _mark_bit_map1; ! MarkBitMap* _complete_mark_bit_map; ! MarkBitMap* _next_mark_bit_map; ! HeapWord** _complete_top_at_mark_starts; ! HeapWord** _complete_top_at_mark_starts_base; ! ! HeapWord** _next_top_at_mark_starts; ! HeapWord** _next_top_at_mark_starts_base; volatile jbyte _cancelled_concgc; size_t _bytes_allocated_since_cm; size_t _bytes_allocated_during_cm; --- 163,178 ---- volatile size_t _used; volatile size_t _committed; MarkBitMap _verification_bit_map; ! MarkBitMap _aux_bit_map; ! MarkBitMap _mark_bit_map; ! bool _bitmap_valid; ! HeapWord** _top_at_mark_starts; ! HeapWord** _top_at_mark_starts_base; volatile jbyte _cancelled_concgc; size_t _bytes_allocated_since_cm; size_t _bytes_allocated_during_cm;
*** 189,199 **** bool _update_refs_in_progress; bool _concurrent_partial_in_progress; unsigned int _evacuation_in_progress; bool _need_update_refs; ! bool _need_reset_bitmaps; ReferenceProcessor* _ref_processor; ShenandoahForwardedIsAliveClosure _forwarded_is_alive; ShenandoahIsAliveClosure _is_alive; --- 185,195 ---- bool _update_refs_in_progress; bool _concurrent_partial_in_progress; unsigned int _evacuation_in_progress; bool _need_update_refs; ! bool _need_reset_bitmap; ReferenceProcessor* _ref_processor; ShenandoahForwardedIsAliveClosure _forwarded_is_alive; ShenandoahIsAliveClosure _is_alive;
*** 343,359 **** inline bool in_collection_set(ShenandoahHeapRegion* r) const; template <class T> inline bool in_collection_set(T obj) const; ! inline bool allocated_after_next_mark_start(HeapWord* addr) const; ! void set_next_top_at_mark_start(HeapWord* region_base, HeapWord* addr); ! HeapWord* next_top_at_mark_start(HeapWord* region_base); ! ! inline bool allocated_after_complete_mark_start(HeapWord* addr) const; ! void set_complete_top_at_mark_start(HeapWord* region_base, HeapWord* addr); ! HeapWord* complete_top_at_mark_start(HeapWord* region_base); // Evacuates object src. Returns the evacuated object if this thread // succeeded, otherwise rolls back the evacuation and returns the // evacuated object by the competing thread. 'succeeded' is an out // param and set to true if this thread succeeded, otherwise to false. --- 339,351 ---- inline bool in_collection_set(ShenandoahHeapRegion* r) const; template <class T> inline bool in_collection_set(T obj) const; ! inline bool allocated_after_mark_start(HeapWord* addr) const; ! void set_top_at_mark_start(HeapWord* region_base, HeapWord* addr); ! HeapWord* top_at_mark_start(HeapWord* region_base); // Evacuates object src. Returns the evacuated object if this thread // succeeded, otherwise rolls back the evacuation and returns the // evacuated object by the competing thread. 'succeeded' is an out // param and set to true if this thread succeeded, otherwise to false.
*** 381,401 **** void handle_heap_shrinkage(); size_t garbage(); ! void reset_next_mark_bitmap(WorkGang* gang); ! void reset_complete_mark_bitmap(WorkGang* gang); ! MarkBitMap* complete_mark_bit_map(); ! MarkBitMap* next_mark_bit_map(); ! inline bool is_marked_complete(oop obj) const; ! inline bool mark_next(oop obj) const; ! inline bool is_marked_next(oop obj) const; ! bool is_next_bitmap_clear(); ! bool is_next_bitmap_clear_range(HeapWord* start, HeapWord* end); ! bool is_complete_bitmap_clear_range(HeapWord* start, HeapWord* end); bool commit_bitmaps(ShenandoahHeapRegion* r); bool uncommit_bitmaps(ShenandoahHeapRegion* r); template <class T> --- 373,392 ---- void handle_heap_shrinkage(); size_t garbage(); ! void reset_mark_bitmap(WorkGang* gang); ! ! MarkBitMap* mark_bit_map(); ! inline bool is_marked(oop obj) const; ! inline bool mark(oop obj); ! bool is_bitmap_clear(); ! bool is_bitmap_clear_range(HeapWord* start, HeapWord* end); ! bool is_bitmap_valid() const { return _bitmap_valid; } ! void set_bitmap_valid(bool valid) { _bitmap_valid = valid; } bool commit_bitmaps(ShenandoahHeapRegion* r); bool uncommit_bitmaps(ShenandoahHeapRegion* r); template <class T>
*** 457,468 **** template<class T> inline void marked_object_oop_safe_iterate(ShenandoahHeapRegion* region, T* cl); GCTimer* gc_timer() const; - void swap_mark_bitmaps(); - void cancel_concgc(GCCause::Cause cause); void cancel_concgc(ShenandoahCancelCause cause); ShenandoahHeapLock* lock() { return &_lock; } void assert_heaplock_owned_by_current_thread() PRODUCT_RETURN; --- 448,457 ----
*** 501,515 **** inline HeapWord* allocate_from_gclab(Thread* thread, size_t size); HeapWord* allocate_from_gclab_slow(Thread* thread, size_t size); HeapWord* allocate_new_gclab(size_t word_size); template<class T> ! inline void do_marked_object(MarkBitMap* bitmap, T* cl, oop obj); ShenandoahConcurrentThread* concurrent_thread() { return _concurrent_gc_thread; } ! inline bool mark_next_no_checks(oop obj) const; public: inline oop atomic_compare_exchange_oop(oop n, narrowOop* addr, oop c); inline oop atomic_compare_exchange_oop(oop n, oop* addr, oop c); --- 490,504 ---- inline HeapWord* allocate_from_gclab(Thread* thread, size_t size); HeapWord* allocate_from_gclab_slow(Thread* thread, size_t size); HeapWord* allocate_new_gclab(size_t word_size); template<class T> ! inline void do_marked_object(T* cl, oop obj); ShenandoahConcurrentThread* concurrent_thread() { return _concurrent_gc_thread; } ! inline bool mark_no_checks(oop obj); public: inline oop atomic_compare_exchange_oop(oop n, narrowOop* addr, oop c); inline oop atomic_compare_exchange_oop(oop n, oop* addr, oop c);
*** 543,550 **** --- 532,541 ---- void set_alloc_seq_gc_start(); void set_alloc_seq_gc_end(); void set_used_at_last_gc() {_used_at_last_gc = used();} + + void make_tlabs_parsable(bool retire_tlabs) /* override */; }; #endif // SHARE_VM_GC_SHENANDOAH_SHENANDOAHHEAP_HPP
< prev index next >