< prev index next >

src/hotspot/share/gc/parallel/psCompactionManager.hpp

8224665: Parallel GC: Use WorkGang (7: remove task manager)

8224661: Parallel GC: Use WorkGang (3: UpdateDensePrefixAndCompactionTask)

8224660: Parallel GC: Use WorkGang (2: MarksFromRootsTask)

8224659: Parallel GC: Use WorkGang (1: PCRefProcTask)

25 #define SHARE_GC_PARALLEL_PSCOMPACTIONMANAGER_HPP                                                                          
26 
27 #include "gc/shared/taskqueue.hpp"                                                                                         
28 #include "memory/allocation.hpp"                                                                                           
29 #include "utilities/stack.hpp"                                                                                             
30 
31 class MutableSpace;                                                                                                        
32 class PSOldGen;                                                                                                            
33 class ParCompactionManager;                                                                                                
34 class ObjectStartArray;                                                                                                    
35 class ParallelCompactData;                                                                                                 
36 class ParMarkBitMap;                                                                                                       
37 
38 class ParCompactionManager : public CHeapObj<mtGC> {                                                                       
39   friend class ParallelTaskTerminator;                                                                                     
40   friend class ParMarkBitMap;                                                                                              
41   friend class PSParallelCompact;                                                                                          
42   friend class CompactionWithStealingTask;                                                                                 
43   friend class UpdateAndFillClosure;                                                                                       
44   friend class RefProcTaskExecutor;                                                                                        
45   friend class IdleGCTask;                                                                                                 
                                                                                                                           
                                                                                                                           
46 
47  public:                                                                                                                   
48 
49 // ------------------------  Don't putback if not needed                                                                   
50   // Actions that the compaction manager should take.                                                                      
51   enum Action {                                                                                                            
52     Update,                                                                                                                
53     Copy,                                                                                                                  
54     UpdateAndCopy,                                                                                                         
55     CopyAndUpdate,                                                                                                         
56     NotValid                                                                                                               
57   };                                                                                                                       
58 // ------------------------  End don't putback if not needed                                                               
59 
60  private:                                                                                                                  
61   // 32-bit:  4K * 8 = 32KiB; 64-bit:  8K * 16 = 128KiB                                                                    
62   #define QUEUE_SIZE (1 << NOT_LP64(12) LP64_ONLY(13))                                                                     
63   typedef OverflowTaskQueue<ObjArrayTask, mtGC, QUEUE_SIZE> ObjArrayTaskQueue;                                             
64   typedef GenericTaskQueueSet<ObjArrayTaskQueue, mtGC>      ObjArrayTaskQueueSet;                                          

25 #define SHARE_GC_PARALLEL_PSCOMPACTIONMANAGER_HPP
26 
27 #include "gc/shared/taskqueue.hpp"
28 #include "memory/allocation.hpp"
29 #include "utilities/stack.hpp"
30 
31 class MutableSpace;
32 class PSOldGen;
33 class ParCompactionManager;
34 class ObjectStartArray;
35 class ParallelCompactData;
36 class ParMarkBitMap;
37 
38 class ParCompactionManager : public CHeapObj<mtGC> {
39   friend class ParallelTaskTerminator;
40   friend class ParMarkBitMap;
41   friend class PSParallelCompact;
42   friend class CompactionWithStealingTask;
43   friend class UpdateAndFillClosure;
44   friend class RefProcTaskExecutor;
45   friend class PCRefProcTask;
46   friend class MarkFromRootsTask;
47   friend class UpdateDensePrefixAndCompactionTask;
48 
49  public:
50 
51 // ------------------------  Don't putback if not needed
52   // Actions that the compaction manager should take.
53   enum Action {
54     Update,
55     Copy,
56     UpdateAndCopy,
57     CopyAndUpdate,
58     NotValid
59   };
60 // ------------------------  End don't putback if not needed
61 
62  private:
63   // 32-bit:  4K * 8 = 32KiB; 64-bit:  8K * 16 = 128KiB
64   #define QUEUE_SIZE (1 << NOT_LP64(12) LP64_ONLY(13))
65   typedef OverflowTaskQueue<ObjArrayTask, mtGC, QUEUE_SIZE> ObjArrayTaskQueue;
66   typedef GenericTaskQueueSet<ObjArrayTaskQueue, mtGC>      ObjArrayTaskQueueSet;
< prev index next >