Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ConcurrentGC Refactoring & SATB Tuning Methods
These changes are to generalize the ConcurrentGC Collector Class so that it can be used for both IncrementalUpdate and SATB style of Concurrent Marking. They are a pre-req to introducing SATB since the existing concurrent collector class is closely tied to Incremental Update approach. CM enabling functionality needs to be abstracted - card table/cleaning cards must be extracted to the derived IncrementalUpdate class. Since there hasn't been any other implementation prior to SATB, ConcurrentGC has acted as Incremental Update Concurrent Collector, much of the components (e.g state machine, Initing, Tuning/adaptive parameters, concurrent state/phases, verbose logging, etc) can be reused with this rework by extracting card/barrier specific code. - ConcurrentGC class is now an Abstract Class _(removed newInstance function)_ - Card cleaning specific adaptive params/factors moved to Incremental Update - Common (Generalized) logic & vars given Protected access in Concurrent GC - New methods introduced to help common up shared logic - signalThreadsToActivateWriteBarrierInternal - updateTuningStatisticsInternal - resetConcurrentParameters - preCompleteConcurrentCycle - finalConcurrentPrecollect - getTraceTarget - External WB Entry points now call new collector specific handlers - J9ConcurrentWriteBarrierBatchStoreHandler - J9ConcurrentWriteBarrierStoreHandler **Tuning logic Implemented for SATB** - adjustTraceTarget - tuneToHeap Signed-off-by: Salman Rana <salman.rana@ibm.com>
- Loading branch information