src/share/vm/gc_implementation/g1/concurrentMark.hpp

changeset 3294
bca17e38de00
parent 3175
4dfb2df418f2
child 3296
dc467e8b2c5e
     1.1 --- a/src/share/vm/gc_implementation/g1/concurrentMark.hpp	Tue Nov 22 04:47:10 2011 -0500
     1.2 +++ b/src/share/vm/gc_implementation/g1/concurrentMark.hpp	Tue Aug 09 10:16:01 2011 -0700
     1.3 @@ -375,7 +375,9 @@
     1.4    ConcurrentMarkThread* _cmThread;   // the thread doing the work
     1.5    G1CollectedHeap*      _g1h;        // the heap.
     1.6    size_t                _parallel_marking_threads; // the number of marking
     1.7 -                                                   // threads we'll use
     1.8 +                                                   // threads we're use
     1.9 +  size_t                _max_parallel_marking_threads; // max number of marking
    1.10 +                                                   // threads we'll ever use
    1.11    double                _sleep_factor; // how much we have to sleep, with
    1.12                                         // respect to the work we just did, to
    1.13                                         // meet the marking overhead goal
    1.14 @@ -473,7 +475,7 @@
    1.15  
    1.16    double*   _accum_task_vtime;   // accumulated task vtime
    1.17  
    1.18 -  WorkGang* _parallel_workers;
    1.19 +  FlexibleWorkGang* _parallel_workers;
    1.20  
    1.21    ForceOverflowSettings _force_overflow_conc;
    1.22    ForceOverflowSettings _force_overflow_stw;
    1.23 @@ -504,6 +506,7 @@
    1.24  
    1.25    // accessor methods
    1.26    size_t parallel_marking_threads() { return _parallel_marking_threads; }
    1.27 +  size_t max_parallel_marking_threads() { return _max_parallel_marking_threads;}
    1.28    double sleep_factor()             { return _sleep_factor; }
    1.29    double marking_task_overhead()    { return _marking_task_overhead;}
    1.30    double cleanup_sleep_factor()     { return _cleanup_sleep_factor; }
    1.31 @@ -709,6 +712,14 @@
    1.32    CMBitMapRO* prevMarkBitMap() const { return _prevMarkBitMap; }
    1.33    CMBitMap*   nextMarkBitMap() const { return _nextMarkBitMap; }
    1.34  
    1.35 +  // Returns the number of GC threads to be used in a concurrent
    1.36 +  // phase based on the number of GC threads being used in a STW
    1.37 +  // phase.
    1.38 +  size_t scale_parallel_threads(size_t n_par_threads);
    1.39 +
    1.40 +  // Calculates the number of GC threads to be used in a concurrent phase.
    1.41 +  int calc_parallel_marking_threads();
    1.42 +
    1.43    // The following three are interaction between CM and
    1.44    // G1CollectedHeap
    1.45  

mercurial