v8/test/unittests/heap
Dominik Inführ 60843b426b Use list of invalidated objects for old-to-new refs
Instead of inserting "deletion" entries into the store buffer, keep a
list of invalidated objects to filter out invalid old-to-new slots.

The first CL https://crrev.com/c/1704109 got reverted because both the
sweeper and the main task were modifying the invalidated slots data
structure concurrently. This CL changes this, such that the sweeper
only modifies the invalidated slots during the final atomic pause when
the main thread is not running. The sweeper does not need to clean this
data structure after the pause, since the "update pointers" phase
already removed all invalidated slots.

The second CL https://crrev.com/c/1733081 got reverted because the
sweeper might find more free space than the full GC before it. If an
object shrinks after the pause but before the sweep, the invalidated
object might span free memory and potentially new allocated objects.
Therefore shrink invalidated objects when processing swept pages on
the main thread. Also clean recorded slots in the gap.

TBR=petermarshall@chromium.org

Bug: v8:9454
Change-Id: I80d1fa3bbc24e97f7c97a373aaad66f105456f12
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1751795
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63239}
2019-08-19 11:40:09 +00:00
..
barrier-unittest.cc Reland "[d8] Remove maximum workers limitation" 2019-07-30 07:56:17 +00:00
bitmap-test-utils.h [heap] Relax accessing markbits in ranges. 2019-02-25 15:28:41 +00:00
bitmap-unittest.cc [heap] Relax accessing markbits in ranges. 2019-02-25 15:28:41 +00:00
code-object-registry-unittest.cc [heap] Make CodeObjectRegistry a separate class. 2019-05-16 18:41:33 +00:00
embedder-tracing-unittest.cc Reland "[heap] Add global memory controller" 2019-05-22 11:32:55 +00:00
gc-idle-time-handler-unittest.cc [heap] Simplify idle notification handler 2019-02-21 12:25:52 +00:00
gc-tracer-unittest.cc Reland "[d8] Remove maximum workers limitation" 2019-07-30 07:56:17 +00:00
heap-controller-unittest.cc [heap] Introduce a min heap size and skip GCs below that threshold 2019-06-06 15:49:50 +00:00
heap-unittest.cc [api] Add a way to specify the max heap size in ResourceConstraints 2019-06-06 10:22:56 +00:00
item-parallel-job-unittest.cc [heap] Do not emit background GC trace events on the main thread 2019-07-18 08:56:58 +00:00
marking-unittest.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
memory-reducer-unittest.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
object-stats-unittest.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
scavenge-job-unittest.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
slot-set-unittest.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
spaces-unittest.cc Use list of invalidated objects for old-to-new refs 2019-08-19 11:40:09 +00:00
unmapper-unittest.cc Move utility code to src/utils 2019-05-23 14:13:34 +00:00
worklist-unittest.cc [heap] Rename IsGlobalEmpty to IsEmpty 2018-07-03 07:15:34 +00:00