Commit aefc8a31 authored by Ali Ijaz Sheikh's avatar Ali Ijaz Sheikh Committed by Commit Bot

[heap] fix regression on thread_times.key_silk_cases

Doing an allocation step before the limit is picked is more correct, but
it causes the idle scavenger and incremental marking to run more
frequently, which causes a regression on certain thread_time benchmarks.
This CL fixes the regression by reverting the behaviour. A proper fix
can be implemented in a follow-on.

Bug: chromium:795323
Change-Id: Ic62eab1ddfd1da4c5904e11eba7d5d71cee38f12
Reviewed-on: https://chromium-review.googlesource.com/835287
Commit-Queue: Ali Ijaz Sheikh <ofrobots@google.com>
Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50239}
parent f6879033
......@@ -2052,14 +2052,18 @@ LocalAllocationBuffer& LocalAllocationBuffer::operator=(
void NewSpace::UpdateAllocationInfo() {
Address old_top = top();
Address new_top = to_space_.page_low();
InlineAllocationStep(top(), new_top, nullptr, 0);
MemoryChunk::UpdateHighWaterMark(allocation_info_.top());
allocation_info_.Reset(new_top, to_space_.page_high());
original_top_.SetValue(top());
original_limit_.SetValue(limit());
UpdateInlineAllocationLimit(0);
// TODO(ofrobots): It would be more correct to do a step before setting the
// limit on the new allocation area. However, fixing this causes a regression
// due to the idle scavenger getting pinged too frequently. crbug.com/795323.
InlineAllocationStep(old_top, new_top, nullptr, 0);
DCHECK_SEMISPACE_ALLOCATION_INFO(allocation_info_, to_space_);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment