mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-27 06:45:07 +02:00
6914402: G1: assert(!is_young_card(cached_ptr),"shouldn't get a card in young region")
Invalid assert. Filter cards evicted from the card count cache instead. Reviewed-by: apetrusenko, tonyp
This commit is contained in:
parent
c61ab190cf
commit
7f9ba03c32
1 changed files with 17 additions and 1 deletions
|
@ -300,7 +300,23 @@ jbyte* ConcurrentG1Refine::cache_insert(jbyte* card_ptr, bool* defer) {
|
||||||
int count;
|
int count;
|
||||||
jbyte* cached_ptr = add_card_count(card_ptr, &count, defer);
|
jbyte* cached_ptr = add_card_count(card_ptr, &count, defer);
|
||||||
assert(cached_ptr != NULL, "bad cached card ptr");
|
assert(cached_ptr != NULL, "bad cached card ptr");
|
||||||
assert(!is_young_card(cached_ptr), "shouldn't get a card in young region");
|
|
||||||
|
if (is_young_card(cached_ptr)) {
|
||||||
|
// The region containing cached_ptr has been freed during a clean up
|
||||||
|
// pause, reallocated, and tagged as young.
|
||||||
|
assert(cached_ptr != card_ptr, "shouldn't be");
|
||||||
|
|
||||||
|
// We've just inserted a new old-gen card pointer into the card count
|
||||||
|
// cache and evicted the previous contents of that count slot.
|
||||||
|
// The evicted card pointer has been determined to be in a young region
|
||||||
|
// and so cannot be the newly inserted card pointer (that will be
|
||||||
|
// in an old region).
|
||||||
|
// The count for newly inserted card will be set to zero during the
|
||||||
|
// insertion, so we don't want to defer the cleaning of the newly
|
||||||
|
// inserted card pointer.
|
||||||
|
assert(*defer == false, "deferring non-hot card");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
// The card pointer we obtained from card count cache is not hot
|
// The card pointer we obtained from card count cache is not hot
|
||||||
// so do not store it in the cache; return it for immediate
|
// so do not store it in the cache; return it for immediate
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue