v8/test/unittests/heap
Omer Katz e072615cc2 cppgc: Establish marking invariants
This is a revival of https://chromium-review.googlesource.com/c/v8/v8/+/2228332

The CL establishes the following:
*) Objects are marked before being pushed to the worklists.
*) Live bytes are always accounted after tracing an object (i.e. move
   from Gray to Black below).
*) Previously not fully constructed objects are traced immediately
   instead of pushed to the marking worklist.

This establishes the following invariants for all marking worklists:
1) White = !object.is_marked() && !worklist.contains(object)
2) Gray = object.is_marked() && worklist.contains(object)
3) Black = object.is_marked() && !worklist.contains(object)

Bug: chromium:1056170
Change-Id: I821573b3fbc057e6ffb836154271ff986ecb4d2b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2336797
Reviewed-by: Anton Bikineev <bikineev@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Omer Katz <omerkatz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69268}
2020-08-06 11:51:48 +00:00
..
cppgc cppgc: Establish marking invariants 2020-08-06 11:51:48 +00:00
allocation-observer-unittest.cc Reland "[heap] Refactor allocation observer in AllocationCounter" 2020-08-04 09:20:02 +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] Fix an out-of-bounds access in the marking bitmap 2020-04-20 09:07:57 +00:00
code-object-registry-unittest.cc [heap] Split out paged-spaces.h 2020-05-14 19:25:25 +00:00
embedder-tracing-unittest.cc [unittests] Convert to the new MOCK_METHOD macro. 2020-06-10 15:50:38 +00:00
gc-idle-time-handler-unittest.cc [heap] Clean up GCIdleTimeHandler. 2020-02-26 10:43:14 +00:00
gc-tracer-unittest.cc [heap, tracing] Use WorkerThreadRuntimeCallStatsScope in background GC 2019-08-29 15:55:48 +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 [heap] Split out memory-chunk.h etc from spaces.h 2020-05-05 05:44:42 +00:00
heap-utils.h Reland "cppgc,heap: Implement atomic unified heap GC" 2020-06-17 11:02:38 +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
js-member-unittest.cc cppgc: Add basic operations for JSMember 2020-07-23 20:57:13 +00:00
list-unittest.cc [heap] Make Heap::Contains const 2020-05-13 13:19:22 +00:00
local-heap-unittest.cc [heap] Implement LocalHeap::Current using thread_local 2020-07-07 16:17:01 +00:00
marking-unittest.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
marking-worklist-unittest.cc [heap] Introduce per-context marking worklists 2019-12-20 15:49:12 +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
off-thread-factory-unittest.cc [offthread] Make publish merging and handle fixup atomic 2020-05-28 13:52:26 +00:00
persistent-handles-unittest.cc [handles] Make DetachPersistent insert into ordered_blocks_ 2020-08-05 12:03:52 +00:00
safepoint-unittest.cc Reland "[heap] Allow LocalHeap on the main thread" 2020-07-10 11:22:19 +00:00
slot-set-unittest.cc [heap] Verify filler slots don't need clearing 2020-04-28 16:24:45 +00:00
spaces-unittest.cc [heap] Use BasicMemoryChunk::FromHeapObject more 2020-06-17 14:05:48 +00:00
unified-heap-unittest.cc Reland "cppgc,heap: Implement atomic unified heap GC" 2020-06-17 11:02:38 +00:00
unmapper-unittest.cc [heap] Reenable UnmapOnTeardown test 2020-08-04 10:38:34 +00:00
worklist-unittest.cc [v8 heap]: Track GlobalSize in worklist. 2020-02-07 16:12:30 +00:00