< prev index next >

src/share/vm/gc_implementation/shenandoah/shenandoahPacer.hpp

Print this page
rev 10543 : [backport] Application pacing precision fixes
rev 10566 : [backport] Pacer should account actual size for elastic TLABs
rev 10598 : [backport] Shenandoah changes to allow enabling -Wreorder

*** 27,36 **** --- 27,39 ---- #include "memory/allocation.hpp" #include "utilities/numberSeq.hpp" class ShenandoahHeap; + #define PACING_PROGRESS_UNINIT (-1) + #define PACING_PROGRESS_ZERO ( 0) + /** * ShenandoahPacer provides allocation pacing mechanism. * * Currently it implements simple tax-and-spend pacing policy: GC threads provide * credit, allocating thread spend the credit, or stall when credit is not available.
*** 40,52 **** ShenandoahHeap* _heap; volatile intptr_t _budget; volatile jdouble _tax_rate; BinaryMagnitudeSeq _delays; public: ShenandoahPacer(ShenandoahHeap* heap) : ! _heap(heap), _budget(0), _tax_rate(1) {} void setup_for_idle(); void setup_for_mark(); void setup_for_evac(); void setup_for_updaterefs(); --- 43,63 ---- ShenandoahHeap* _heap; volatile intptr_t _budget; volatile jdouble _tax_rate; BinaryMagnitudeSeq _delays; + volatile intptr_t _progress; + TruncatedSeq* _progress_history; + volatile intptr_t _epoch; + public: ShenandoahPacer(ShenandoahHeap* heap) : ! _heap(heap), _budget(0), _tax_rate(1), ! _progress(PACING_PROGRESS_UNINIT), ! _progress_history(new TruncatedSeq(5)), ! _epoch(0) { ! } void setup_for_idle(); void setup_for_mark(); void setup_for_evac(); void setup_for_updaterefs();
*** 57,70 **** --- 68,88 ---- inline void report_alloc(size_t words); bool claim_for_alloc(size_t words, bool force); void pace_for_alloc(size_t words); + void unpace_for_alloc(intptr_t epoch, size_t words); + + intptr_t epoch(); void print_on(outputStream* out) const; private: inline void report_internal(size_t words); + inline void report_progress_internal(size_t words); + void restart_with(jlong non_taxable_bytes, jdouble tax_rate); + + size_t update_and_get_progress_history(); }; #endif //SHARE_VM_GC_SHENANDOAH_SHENANDOAHPACER_HPP
< prev index next >