comparison src/share/vm/runtime/mutexLocker.hpp @ 1358:72f725c5a7be

6940310: G1: MT-unsafe calls to CM::region_stack_push() / CM::region_stack_pop() Summary: Calling the methods region_stack_push() and region_stack_pop() concurrent is not MT-safe. The assumption is that we will only call region_stack_push() during a GC pause and region_stack_pop() during marking. Unfortunately, we also call region_stack_push() during marking which seems to be introducing subtle marking failures. This change introduces lock-based methods for pushing / popping to be called during marking. Reviewed-by: iveresov, johnc
author tonyp
date Mon, 05 Apr 2010 12:19:22 -0400
parents bd02caa94611
children c18cbe5936b8
comparison
equal deleted inserted replaced
1357:781e29eb8e08 1358:72f725c5a7be
61 extern Monitor* iCMS_lock; // CMS incremental mode start/stop notification 61 extern Monitor* iCMS_lock; // CMS incremental mode start/stop notification
62 extern Monitor* FullGCCount_lock; // in support of "concurrent" full gc 62 extern Monitor* FullGCCount_lock; // in support of "concurrent" full gc
63 extern Monitor* CMark_lock; // used for concurrent mark thread coordination 63 extern Monitor* CMark_lock; // used for concurrent mark thread coordination
64 extern Monitor* ZF_mon; // used for G1 conc zero-fill. 64 extern Monitor* ZF_mon; // used for G1 conc zero-fill.
65 extern Monitor* Cleanup_mon; // used for G1 conc cleanup. 65 extern Monitor* Cleanup_mon; // used for G1 conc cleanup.
66 extern Mutex* CMRegionStack_lock; // used for protecting accesses to the CM region stack
66 extern Mutex* SATB_Q_FL_lock; // Protects SATB Q 67 extern Mutex* SATB_Q_FL_lock; // Protects SATB Q
67 // buffer free list. 68 // buffer free list.
68 extern Monitor* SATB_Q_CBL_mon; // Protects SATB Q 69 extern Monitor* SATB_Q_CBL_mon; // Protects SATB Q
69 // completed buffer queue. 70 // completed buffer queue.
70 extern Mutex* Shared_SATB_Q_lock; // Lock protecting SATB 71 extern Mutex* Shared_SATB_Q_lock; // Lock protecting SATB