< prev index next >

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

Print this page
rev 13068 : [mq]: partial.patch

*** 35,44 **** --- 35,45 ---- class ShenandoahHeapRegionClosure; class ShenandoahHeapRegionSet; class ShenandoahCollectionSet; class ShenandoahFreeSet; class ShenandoahConcurrentMark; + class ShenandoahPartialGC; class ShenandoahConcurrentThread; class ShenandoahMonitoringSupport; class SCMUpdateRefsClosure: public OopClosure { private:
*** 142,153 **** ShenandoahFreeSet* _free_regions; ShenandoahCollectionSet* _collection_set; ShenandoahHeapRegion* _currentAllocationRegion; ShenandoahConcurrentMark* _scm; ! ! ShenandoahConcurrentThread* _concurrent_gc_thread; ShenandoahMonitoringSupport* _monitoring_support; --- 143,153 ---- ShenandoahFreeSet* _free_regions; ShenandoahCollectionSet* _collection_set; ShenandoahHeapRegion* _currentAllocationRegion; ShenandoahConcurrentMark* _scm; ! ShenandoahPartialGC* _partial_gc; ShenandoahConcurrentThread* _concurrent_gc_thread; ShenandoahMonitoringSupport* _monitoring_support;
*** 297,306 **** --- 297,307 ---- static address concurrent_mark_in_progress_addr(); void prepare_for_concurrent_evacuation(); void evacuate_and_update_roots(); + void do_partial_collection(); void verify_matrix(); private: void set_evacuation_in_progress(bool in_progress); public: inline bool is_evacuation_in_progress();
*** 340,349 **** --- 341,351 ---- inline bool try_cancel_concgc() const; void clear_cancelled_concgc(); ShenandoahHeapRegionSet* regions() { return _ordered_regions;} ShenandoahFreeSet* free_regions(); + ShenandoahCollectionSet* collection_set() { return _collection_set; } void clear_free_regions(); void add_free_region(ShenandoahHeapRegion* r); ShenandoahConnectionMatrix* connection_matrix();
*** 390,399 **** --- 392,402 ---- VirtualSpace* storage() const; ShenandoahMonitoringSupport* monitoring_support(); ShenandoahConcurrentMark* concurrentMark() { return _scm;} + ShenandoahPartialGC* partial_gc(); ReferenceProcessor* ref_processor() { return _ref_processor;} WorkGang* workers() const { return _workers;}
*** 403,412 **** --- 406,416 ---- ShenandoahHeapRegion* next_compaction_region(const ShenandoahHeapRegion* r); void heap_region_iterate(ShenandoahHeapRegionClosure* blk, bool skip_dirty_regions = false, bool skip_humongous_continuation = false) const; void verify_heap_after_evacuation(); + void verify_heap_after_marking(); // Delete entries for dead interned string and clean up unreferenced symbols // in symbol table, possibly in parallel. void unlink_string_and_symbol_table(BoolObjectClosure* is_alive, bool unlink_strings = true, bool unlink_symbols = true);
*** 446,475 **** inline bool mark_next_no_checks(oop obj) const; void parallel_evacuate(); inline oop atomic_compare_exchange_oop(oop n, narrowOop* addr, oop c); inline oop atomic_compare_exchange_oop(oop n, oop* addr, oop c); void evacuate_region(ShenandoahHeapRegion* from_region, ShenandoahHeapRegion* to_region); #ifdef ASSERT void verify_evacuated_region(ShenandoahHeapRegion* from_region); #endif inline void copy_object(oop p, HeapWord* s, size_t words); void verify_copy(oop p, oop c); void verify_heap_size_consistency(); ! void verify_heap_after_marking(); void verify_heap_after_update_refs(); void verify_regions_after_update_refs(); void ref_processing_init(); GCTracer* tracer(); - ShenandoahCollectionSet* collection_set() { return _collection_set; } bool call_from_write_barrier(bool evacuating); void grow_heap_by(size_t num_regions); void ensure_new_regions(size_t num_new_regions); --- 450,480 ---- inline bool mark_next_no_checks(oop obj) const; void parallel_evacuate(); + 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); + private: void evacuate_region(ShenandoahHeapRegion* from_region, ShenandoahHeapRegion* to_region); #ifdef ASSERT void verify_evacuated_region(ShenandoahHeapRegion* from_region); #endif inline void copy_object(oop p, HeapWord* s, size_t words); void verify_copy(oop p, oop c); void verify_heap_size_consistency(); ! private: void verify_heap_after_update_refs(); void verify_regions_after_update_refs(); void ref_processing_init(); GCTracer* tracer(); bool call_from_write_barrier(bool evacuating); void grow_heap_by(size_t num_regions); void ensure_new_regions(size_t num_new_regions);
< prev index next >