Mercurial > hg > graal-compiler
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 |