comparison src/share/vm/gc_implementation/g1/concurrentG1RefineThread.hpp @ 20216:570cb6369f17

8019342: G1: High "Other" time most likely due to card redirtying Summary: Parallelize card redirtying to decrease the time it takes. Reviewed-by: brutisso
author tschatzl
date Mon, 21 Jul 2014 09:40:19 +0200
parents 581e70386ec9
children
comparison
equal deleted inserted replaced
20215:983092f35ff7 20216:570cb6369f17
26 #define SHARE_VM_GC_IMPLEMENTATION_G1_CONCURRENTG1REFINETHREAD_HPP 26 #define SHARE_VM_GC_IMPLEMENTATION_G1_CONCURRENTG1REFINETHREAD_HPP
27 27
28 #include "gc_implementation/shared/concurrentGCThread.hpp" 28 #include "gc_implementation/shared/concurrentGCThread.hpp"
29 29
30 // Forward Decl. 30 // Forward Decl.
31 class CardTableEntryClosure;
31 class ConcurrentG1Refine; 32 class ConcurrentG1Refine;
32 33
33 // The G1 Concurrent Refinement Thread (could be several in the future). 34 // The G1 Concurrent Refinement Thread (could be several in the future).
34 35
35 class ConcurrentG1RefineThread: public ConcurrentGCThread { 36 class ConcurrentG1RefineThread: public ConcurrentGCThread {
47 bool _active; 48 bool _active;
48 ConcurrentG1RefineThread* _next; 49 ConcurrentG1RefineThread* _next;
49 Monitor* _monitor; 50 Monitor* _monitor;
50 ConcurrentG1Refine* _cg1r; 51 ConcurrentG1Refine* _cg1r;
51 52
53 // The closure applied to completed log buffers.
54 CardTableEntryClosure* _refine_closure;
55
52 int _thread_threshold_step; 56 int _thread_threshold_step;
53 // This thread activation threshold 57 // This thread activation threshold
54 int _threshold; 58 int _threshold;
55 // This thread deactivation threshold 59 // This thread deactivation threshold
56 int _deactivation_threshold; 60 int _deactivation_threshold;
66 70
67 public: 71 public:
68 virtual void run(); 72 virtual void run();
69 // Constructor 73 // Constructor
70 ConcurrentG1RefineThread(ConcurrentG1Refine* cg1r, ConcurrentG1RefineThread* next, 74 ConcurrentG1RefineThread(ConcurrentG1Refine* cg1r, ConcurrentG1RefineThread* next,
75 CardTableEntryClosure* refine_closure,
71 uint worker_id_offset, uint worker_id); 76 uint worker_id_offset, uint worker_id);
72 77
73 void initialize(); 78 void initialize();
74 79
75 // Printing 80 // Printing