• Ali Ijaz Sheikh's avatar
    [heap] do not perform a step while a space is partially mutated · 70c02375
    Ali Ijaz Sheikh authored
    We were starting an allocation step during NewSpace::AddFreshPage. At
    this point, we had advanced the page, but not updated allocation_info_.
    This ultimately led to assertions as Space::Size was not expecting
    to be called when to_space_.page_{high,low} are inconsistent with
    allocation_info_.top().
    
    The solution here is to avoid starting the step in the middle of the
    space state mutation. We account for memory allocated so far before the
    mutation is started, and then start a new step after the mutation has
    been completed.
    
    Bug: chromium:806179
    Change-Id: I17ee896d80c4ec752baa2b17c3fd2bef7ea2ca33
    Reviewed-on: https://chromium-review.googlesource.com/889981Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
    Commit-Queue: Ali Ijaz Sheikh <ofrobots@google.com>
    Cr-Commit-Position: refs/heads/master@{#50932}
    70c02375
Name
Last commit
Last update
..
OWNERS Loading commit data...
array-buffer-collector.cc Loading commit data...
array-buffer-collector.h Loading commit data...
array-buffer-tracker-inl.h Loading commit data...
array-buffer-tracker.cc Loading commit data...
array-buffer-tracker.h Loading commit data...
barrier.h Loading commit data...
code-stats.cc Loading commit data...
code-stats.h Loading commit data...
concurrent-marking.cc Loading commit data...
concurrent-marking.h Loading commit data...
embedder-tracing.cc Loading commit data...
embedder-tracing.h Loading commit data...
gc-idle-time-handler.cc Loading commit data...
gc-idle-time-handler.h Loading commit data...
gc-tracer.cc Loading commit data...
gc-tracer.h Loading commit data...
heap-inl.h Loading commit data...
heap.cc Loading commit data...
heap.h Loading commit data...
incremental-marking-inl.h Loading commit data...
incremental-marking-job.cc Loading commit data...
incremental-marking-job.h Loading commit data...
incremental-marking.cc Loading commit data...
incremental-marking.h Loading commit data...
invalidated-slots-inl.h Loading commit data...
invalidated-slots.cc Loading commit data...
invalidated-slots.h Loading commit data...
item-parallel-job.h Loading commit data...
local-allocator.h Loading commit data...
mark-compact-inl.h Loading commit data...
mark-compact.cc Loading commit data...
mark-compact.h Loading commit data...
marking.cc Loading commit data...
marking.h Loading commit data...
memory-reducer.cc Loading commit data...
memory-reducer.h Loading commit data...
object-stats.cc Loading commit data...
object-stats.h Loading commit data...
objects-visiting-inl.h Loading commit data...
objects-visiting.cc Loading commit data...
objects-visiting.h Loading commit data...
remembered-set.h Loading commit data...
scavenge-job.cc Loading commit data...
scavenge-job.h Loading commit data...
scavenger-inl.h Loading commit data...
scavenger.cc Loading commit data...
scavenger.h Loading commit data...
setup-heap-internal.cc Loading commit data...
slot-set.h Loading commit data...
spaces-inl.h Loading commit data...
spaces.cc Loading commit data...
spaces.h Loading commit data...
store-buffer.cc Loading commit data...
store-buffer.h Loading commit data...
stress-marking-observer.cc Loading commit data...
stress-marking-observer.h Loading commit data...
stress-scavenge-observer.cc Loading commit data...
stress-scavenge-observer.h Loading commit data...
sweeper.cc Loading commit data...
sweeper.h Loading commit data...
worklist.h Loading commit data...