提交 37bf6a4e 编写于 作者: T tonyp

7033292: G1: nightly failure: Non-dirty cards in region that should be dirty

Summary: The epochs on the card cache array are initialized to 0 and our initial epoch also starts at 0. So, until the first GC, it might be possible to successfully "claim" a card which was in fact never initialized.
Reviewed-by: johnc, iveresov, ysr
上级 10b871c9
...@@ -51,7 +51,11 @@ ConcurrentG1Refine::ConcurrentG1Refine() : ...@@ -51,7 +51,11 @@ ConcurrentG1Refine::ConcurrentG1Refine() :
_cache_size_index(0), _expand_card_counts(false), _cache_size_index(0), _expand_card_counts(false),
_hot_cache(NULL), _hot_cache(NULL),
_def_use_cache(false), _use_cache(false), _def_use_cache(false), _use_cache(false),
_n_periods(0), // We initialize the epochs of the array to 0. By initializing
// _n_periods to 1 and not 0 we automatically invalidate all the
// entries on the array. Otherwise we might accidentally think that
// we claimed a card that was in fact never set (see CR7033292).
_n_periods(1),
_threads(NULL), _n_threads(0) _threads(NULL), _n_threads(0)
{ {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册