提交 b68bb1c3 编写于 作者: J jcoomes

6810474: par compact - crash in summary_phase with very full heap

Reviewed-by: tonyp
上级 c4b16995
...@@ -508,6 +508,7 @@ ParallelCompactData::summarize_split_space(size_t src_region, ...@@ -508,6 +508,7 @@ ParallelCompactData::summarize_split_space(size_t src_region,
assert(destination <= target_end, "sanity"); assert(destination <= target_end, "sanity");
assert(destination + _region_data[src_region].data_size() > target_end, assert(destination + _region_data[src_region].data_size() > target_end,
"region should not fit into target space"); "region should not fit into target space");
assert(is_region_aligned(target_end), "sanity");
size_t split_region = src_region; size_t split_region = src_region;
HeapWord* split_destination = destination; HeapWord* split_destination = destination;
...@@ -538,14 +539,12 @@ ParallelCompactData::summarize_split_space(size_t src_region, ...@@ -538,14 +539,12 @@ ParallelCompactData::summarize_split_space(size_t src_region,
// max(top, max(new_top, clear_top)) // max(top, max(new_top, clear_top))
// //
// where clear_top is a new field in SpaceInfo. Would have to set clear_top // where clear_top is a new field in SpaceInfo. Would have to set clear_top
// to destination + partial_obj_size, where both have the values passed to // to target_end.
// this routine.
const RegionData* const sr = region(split_region); const RegionData* const sr = region(split_region);
const size_t beg_idx = const size_t beg_idx =
addr_to_region_idx(region_align_up(sr->destination() + addr_to_region_idx(region_align_up(sr->destination() +
sr->partial_obj_size())); sr->partial_obj_size()));
const size_t end_idx = const size_t end_idx = addr_to_region_idx(target_end);
addr_to_region_idx(region_align_up(destination + partial_obj_size));
if (TraceParallelOldGCSummaryPhase) { if (TraceParallelOldGCSummaryPhase) {
gclog_or_tty->print_cr("split: clearing source_region field in [" gclog_or_tty->print_cr("split: clearing source_region field in ["
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册