src/share/vm/gc_implementation/g1/concurrentG1RefineThread.hpp
Print this page
rev 6327 : 8019342: G1: High "Other" time most likely due to card redirtying
Summary: Parallelize card redirtying to decrease the time it takes.
Reviewed-by: brutisso
@@ -26,10 +26,11 @@
#define SHARE_VM_GC_IMPLEMENTATION_G1_CONCURRENTG1REFINETHREAD_HPP
#include "gc_implementation/shared/concurrentGCThread.hpp"
// Forward Decl.
+class CardTableEntryClosure;
class ConcurrentG1Refine;
// The G1 Concurrent Refinement Thread (could be several in the future).
class ConcurrentG1RefineThread: public ConcurrentGCThread {
@@ -47,10 +48,13 @@
bool _active;
ConcurrentG1RefineThread* _next;
Monitor* _monitor;
ConcurrentG1Refine* _cg1r;
+ // The closure applied to completed log buffers.
+ CardTableEntryClosure* _refine_closure;
+
int _thread_threshold_step;
// This thread activation threshold
int _threshold;
// This thread deactivation threshold
int _deactivation_threshold;
@@ -66,10 +70,11 @@
public:
virtual void run();
// Constructor
ConcurrentG1RefineThread(ConcurrentG1Refine* cg1r, ConcurrentG1RefineThread* next,
+ CardTableEntryClosure* refine_closure,
uint worker_id_offset, uint worker_id);
void initialize();
// Printing