Mercurial > hg > truffle
comparison src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp @ 1666:5cbac8938c4c
6956639: G1: assert(cached_ptr != card_ptr) failed: shouldn't be, concurrentG1Refine.cpp:307
Summary: During concurrent refinment, filter cards in young regions after it has been determined that the region has been allocated from and the young type of the region has been set.
Reviewed-by: iveresov, tonyp, jcoomes
author | johnc |
---|---|
date | Mon, 19 Jul 2010 11:06:34 -0700 |
parents | 4e5661ba9d98 |
children | 2d160770d2e5 |
comparison
equal
deleted
inserted
replaced
1665:a93a9eda13f7 | 1666:5cbac8938c4c |
---|---|
636 assert(_cur_alloc_region == NULL || !_cur_alloc_region->isHumongous(), | 636 assert(_cur_alloc_region == NULL || !_cur_alloc_region->isHumongous(), |
637 "Prevent a regression of this bug."); | 637 "Prevent a regression of this bug."); |
638 | 638 |
639 // Now retry the allocation. | 639 // Now retry the allocation. |
640 if (_cur_alloc_region != NULL) { | 640 if (_cur_alloc_region != NULL) { |
641 if (allocated_young_region != NULL) { | |
642 // We need to ensure that the store to top does not | |
643 // float above the setting of the young type. | |
644 OrderAccess::storestore(); | |
645 } | |
641 res = _cur_alloc_region->allocate(word_size); | 646 res = _cur_alloc_region->allocate(word_size); |
642 } | 647 } |
643 } | 648 } |
644 | 649 |
645 // NOTE: fails frequently in PRT | 650 // NOTE: fails frequently in PRT |