v8/test/cctest
Michael Lippautz 804aaa5c69 Reland "cppgc-js,heap: Implement snapshots for embedder fields"
This is a reland of 142dd775b4

Original change's description:
> cppgc-js,heap: Implement snapshots for embedder fields
>
> https://crrev.com/c/3293410 added concurrent processing of C++ objects
> found through V8 embedder fields. The CL missed that those embedder
> fields are not read atomically from JS objects. The problem is that
> embedder fields are only aligned to kTaggedSize on builds with pointer
> compression and are as such mis-aligned for atomic ops. This is not a
> problem for on-heap values as the upper 32bits are anyways computed
> from the cage. Is is a problem for generic C++ values though, as they
> are used with Oilpan.
>
> This CL adds the standard marker snapshot protocol for embedder fields.
>
> Marker:
> 1. Snapshot embedder fields
> 2. Try to mark host object
> 3. On success: process snapshot
>
> Main thread:
> 1. On setting embedder fields mark the object black first
> 2. Emit a write barrier for the embedder fields
>
> This will get simpler with the heap sandbox that uses a separate table
> for embedder fields. Once the sandbox is the default configuration, we
> 	can use it as dependency for the concurrent fast path.
>
> Bug: chromium:1285706
> Change-Id: I6b975ea561be08cda840ef0dd27a11627de93900
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3380983
> Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
> Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#78604}

Bug: chromium:1285706
Change-Id: I024e50fc0757fbcd13cb9ffde027dff55f99d25c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3386600
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78631}
2022-01-14 20:02:33 +00:00
..
compiler [ext-code-space][cleanup] Remove CodeDataContainer table 2021-12-16 17:32:39 +00:00
heap [heap] Refactor MemoryAllocator 2022-01-12 09:53:53 +00:00
interpreter [debug] Simplify async function instrumentation. 2022-01-13 10:34:35 +00:00
libplatform
libsampler Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
parsing [compiler] Introduce ReusableUnoptimizedCompileState 2021-12-08 11:14:27 +00:00
torque [csa, torque, cleanup] Rename CSA_ASSERT to CSA_DCHECK 2021-09-30 08:41:23 +00:00
wasm [wasm] Add suspend wrapper stub 2022-01-14 16:45:42 +00:00
assembler-helper-arm.cc
assembler-helper-arm.h
BUILD.gn [Temporal] Part 2.1 Add TemporalParser to parse ISO8601 2021-11-24 00:50:24 +00:00
cctest-utils.h [LOONG64] Add LoongArch64 backend 2021-08-16 13:05:19 +00:00
cctest.cc heap: ManualGCScope should finalize marking 2022-01-14 09:59:21 +00:00
cctest.h heap: ManualGCScope should finalize marking 2022-01-14 09:59:21 +00:00
cctest.status Fix Wasm atomic waits on big endian platforms 2021-12-22 19:29:14 +00:00
collector.h [base] Move utils/vector.h to base/vector.h 2021-06-18 13:33:13 +00:00
DEPS
disasm-regex-helper.cc [ext-code-space] Avoid Code <-> CodeT conversions in runtime, pt.2 2021-12-14 12:19:05 +00:00
disasm-regex-helper.h
expression-type-collector-macros.h
gay-fixed.cc Reland "[base] Move most of src/numbers into base" 2021-06-24 15:00:27 +00:00
gay-fixed.h Reland "[base] Move most of src/numbers into base" 2021-06-24 15:00:27 +00:00
gay-precision.cc Reland "[base] Move most of src/numbers into base" 2021-06-24 15:00:27 +00:00
gay-precision.h Reland "[base] Move most of src/numbers into base" 2021-06-24 15:00:27 +00:00
gay-shortest.cc Reland "[base] Move most of src/numbers into base" 2021-06-24 15:00:27 +00:00
gay-shortest.h Reland "[base] Move most of src/numbers into base" 2021-06-24 15:00:27 +00:00
manually-externalized-buffer.h
OWNERS
print-extension.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
print-extension.h Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
profiler-extension.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
profiler-extension.h Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
scope-test-helper.h
setup-isolate-for-tests.cc
setup-isolate-for-tests.h
test-access-checks.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
test-accessor-assembler.cc [ic] Use the Map for hashing in the secondary stub cache 2021-10-15 14:54:28 +00:00
test-accessors.cc [cleanup] Fix Wshadow warnings in cctests 2021-09-27 09:18:00 +00:00
test-allocation.cc [cleanup][test] Remove redundant NOLINT annotations 2021-04-30 11:46:14 +00:00
test-api-accessors.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
test-api-array-buffer.cc [builtins] DataView should throws on detached buffer 2021-09-14 16:49:36 +00:00
test-api-icu.cc [Intl] Update ICU to 70-1 on v8 2021-11-12 11:35:09 +00:00
test-api-interceptors.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
test-api-stack-traces.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
test-api-typed-array.cc [rab / gsab] Add tests for the recent DataView bugs 2021-11-24 16:20:29 +00:00
test-api-wasm.cc [wasm][api] Add WasmModuleObject::Compile api function 2021-11-19 22:25:15 +00:00
test-api.cc Reland "cppgc-js,heap: Implement snapshots for embedder fields" 2022-01-14 20:02:33 +00:00
test-api.h Reland "Fix -Wimplicit-int-float-conversions." 2021-06-29 16:36:18 +00:00
test-array-list.cc
test-assembler-arm64.cc [cleanup] Rename RelocInfo::NONE to RelocInfo::NO_INFO to fix -Wshadow 2021-11-17 19:11:40 +00:00
test-assembler-arm.cc [wasm-simd][arm] Fuse extadd_pairwise and add SIMD on arm. 2021-06-28 14:26:00 +00:00
test-assembler-ia32.cc Fix test-assembler-ia32 2021-12-15 18:40:44 +00:00
test-assembler-loong64.cc [loong64] Fix the wrong encoding and usage of maskeqz/masknez instructions 2021-12-24 10:46:06 +00:00
test-assembler-mips64.cc [loong64][mips] Fix safepoint record of CallCFunction 2021-11-04 02:29:29 +00:00
test-assembler-mips.cc [loong64][mips] Fix safepoint record of CallCFunction 2021-11-04 02:29:29 +00:00
test-assembler-ppc.cc PPC [simd]: Add tests for some word sized vector instructions 2021-08-16 21:34:29 +00:00
test-assembler-riscv64.cc [riscv64] Add I8x16_Popcnt for WASM SIMD 2021-12-27 08:15:49 +00:00
test-assembler-s390.cc [cleanup] Rename RelocInfo::NONE to RelocInfo::NO_INFO to fix -Wshadow 2021-11-17 19:11:40 +00:00
test-assembler-x64.cc [x64] Implement 256-bit assembler for vshufps 2022-01-13 08:34:45 +00:00
test-atomicops.cc Add Relaxed_Memcmp 2021-12-03 18:00:48 +00:00
test-bignum-dtoa.cc Reland "[base] Move most of src/numbers into base" 2021-06-24 15:00:27 +00:00
test-bignum.cc Reland "[base] Move most of src/numbers into base" 2021-06-24 15:00:27 +00:00
test-bit-vector.cc
test-circular-queue.cc
test-code-layout.cc
test-code-pages.cc [sparkplug] Remove BaselineData, use Code directly 2021-09-06 11:52:21 +00:00
test-code-stub-assembler.cc [ext-code-space] Avoid Code <-> CodeT conversions in runtime, pt.2 2021-12-14 12:19:05 +00:00
test-compiler.cc [local-isolate] Move worker RCS scope into LocalIsolate 2021-12-10 11:08:01 +00:00
test-concurrent-descriptor-array.cc
test-concurrent-feedback-vector.cc [ic] Fix -Wshadow by making InlineCacheState an enum class 2021-11-19 18:52:15 +00:00
test-concurrent-js-array.cc
test-concurrent-prototype.cc [cleanup] Remove synchronized_ from map accessors 2021-05-17 15:07:46 +00:00
test-concurrent-script-context-table.cc [cleanup] Fix Wshadow warnings in cctests 2021-09-27 09:18:00 +00:00
test-concurrent-string.cc [string] Skip concurrent tests if FLAG_single_generation is on 2021-06-09 12:30:28 +00:00
test-concurrent-transition-array.cc [objects] Make PropertyKind an enum class to fix -Wshadow 2021-11-15 19:05:14 +00:00
test-constantpool.cc
test-conversions.cc [numbers] Rename ConversionFlags:NO_FLAG to NO_CONVERSION_FLAGS 2021-11-11 22:04:22 +00:00
test-cpu-profiler.cc [ext-code-space] Avoid Code <-> CodeT conversions in runtime, pt.2 2021-12-14 12:19:05 +00:00
test-date.cc
test-debug-helper.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
test-debug.cc [debug] Add new 'CreateMessageFromException' function 2022-01-12 12:49:53 +00:00
test-decls.cc [api] V8::Initialize cleanup 2021-11-30 14:30:38 +00:00
test-deoptimization.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
test-descriptor-array.cc [objects] Make PropertyKind an enum class to fix -Wshadow 2021-11-15 19:05:14 +00:00
test-dictionary.cc
test-disasm-arm64.cc
test-disasm-arm.cc [wasm-simd][arm] Fuse extadd_pairwise and add SIMD on arm. 2021-06-28 14:26:00 +00:00
test-disasm-ia32.cc [cleanup] Rename RelocInfo::NONE to RelocInfo::NO_INFO to fix -Wshadow 2021-11-17 19:11:40 +00:00
test-disasm-loong64.cc [loong64] Fix the wrong encoding and usage of maskeqz/masknez instructions 2021-12-24 10:46:06 +00:00
test-disasm-mips64.cc [base] Move utils/vector.h to base/vector.h 2021-06-18 13:33:13 +00:00
test-disasm-mips.cc [base] Move utils/vector.h to base/vector.h 2021-06-18 13:33:13 +00:00
test-disasm-ppc.cc [base] Move utils/vector.h to base/vector.h 2021-06-18 13:33:13 +00:00
test-disasm-riscv64.cc [riscv64] Add RISCV64 support for wasm-relaxed-simd 2022-01-10 01:40:22 +00:00
test-disasm-s390.cc [base] Move utils/vector.h to base/vector.h 2021-06-18 13:33:13 +00:00
test-disasm-x64.cc [x64] Implement 256-bit assembler for vshufps 2022-01-13 08:34:45 +00:00
test-diy-fp.cc Reland "[base] Move most of src/numbers into base" 2021-06-24 15:00:27 +00:00
test-double.cc Reland "[base] Move most of src/numbers into base" 2021-06-24 15:00:27 +00:00
test-dtoa.cc Reland "[base] Move most of src/numbers into base" 2021-06-24 15:00:27 +00:00
test-elements-kind.cc
test-factory.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
test-fast-dtoa.cc Reland "[base] Move most of src/numbers into base" 2021-06-24 15:00:27 +00:00
test-feedback-vector.cc [ic] Fix -Wshadow by making InlineCacheState an enum class 2021-11-19 18:52:15 +00:00
test-feedback-vector.h [runtime] Rename Builtins::Name to Builtin 1/2 2021-06-07 20:05:44 +00:00
test-field-type-tracking.cc [objects] Make PropertyKind an enum class to fix -Wshadow 2021-11-15 19:05:14 +00:00
test-fixed-dtoa.cc Reland "[base] Move most of src/numbers into base" 2021-06-24 15:00:27 +00:00
test-flags.cc
test-func-name-inference.cc [base] Move utils/vector.h to base/vector.h 2021-06-18 13:33:13 +00:00
test-fuzz-arm64.cc
test-global-handles.cc [cleanup] Fix Wshadow warnings in cctests 2021-09-27 09:18:00 +00:00
test-global-object.cc
test-hashcode.cc
test-hashmap.cc
test-heap-profiler.cc [ext-code-space][cleanup] Remove CodeDataContainer table 2021-12-16 17:32:39 +00:00
test-helper-riscv64.cc
test-helper-riscv64.h [riscv64] Add tests for RVV VI VF instructions 2021-10-28 13:57:31 +00:00
test-icache.cc [LOONG64] Add LoongArch64 backend 2021-08-16 13:05:19 +00:00
test-identity-map.cc [string] Remove FLAG_thin_string and enable it all the time 2021-06-09 09:52:48 +00:00
test-ignition-statistics-extension.cc Fix counting ignition dispatches 2021-06-07 18:47:24 +00:00
test-inobject-slack-tracking.cc Refactor of ScopeInfo::ContextSlotIndex 2021-05-19 18:12:40 +00:00
test-inspector.cc [inspector] Use ephemeron table for exception metadata 2021-09-16 08:45:11 +00:00
test-intl.cc [builtins] add Torque fast-path for String.prototype.localeCompare 2021-11-17 12:55:13 +00:00
test-javascript-arm64.cc
test-js-arm64-variables.cc
test-js-to-wasm.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
test-js-weak-refs.cc heap: Replace WeakObjects Worklist with ::heap::base::Worklist 2021-11-30 11:37:31 +00:00
test-liveedit.cc [cleanup] Fix some -Wshadow warnings 2021-11-02 17:11:48 +00:00
test-local-handles.cc [cleanup] Fix some -Wshadow warnings 2021-11-02 17:11:48 +00:00
test-lockers.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
test-log-stack-tracer.cc [ext-code-space] Use cage-friendly HeapObject::map() in compiler 2021-11-30 13:00:28 +00:00
test-log.cc [ext-code-space][cleanup] Remove CodeDataContainer table 2021-12-16 17:32:39 +00:00
test-macro-assembler-arm64.cc [ext-code-space] Introduce RelocInfo::target_object(PtrComprCageBase) 2021-10-12 15:43:34 +00:00
test-macro-assembler-arm.cc [runtime] Rename Builtins::Name to Builtin 1/2 2021-06-07 20:05:44 +00:00
test-macro-assembler-loong64.cc [loong64] Optimize GenerateSwitchTable 2021-09-08 10:41:51 +00:00
test-macro-assembler-mips64.cc [mips] Fix build failed 2021-06-15 04:24:28 +00:00
test-macro-assembler-mips.cc [runtime] Rename Builtins::Name to Builtin 1/2 2021-06-07 20:05:44 +00:00
test-macro-assembler-riscv64.cc [riscv64] Delete s10 from scratch_list 2021-08-19 07:11:26 +00:00
test-macro-assembler-x64.cc [ext-code-space][compiler] Support calling CodeT targets 2021-12-16 13:45:12 +00:00
test-managed.cc [ext-code-space] Introduce managed-inl.h and global-handles-inl.h 2021-09-20 10:29:29 +00:00
test-mementos.cc [heap] Make creation of NewSpace and NewLargeObjectSpace optional 2021-05-04 06:47:54 +00:00
test-modules.cc Reland "[top-level-await] Remove --harmony-top-level-await" 2021-12-06 23:02:33 +00:00
test-object.cc [runtime] Fix constructors with custom instance types 2021-11-25 10:26:50 +00:00
test-orderedhashtable.cc [objects] Make PropertyKind an enum class to fix -Wshadow 2021-11-15 19:05:14 +00:00
test-parsing.cc [parser] Split AstRawString and Parser zones 2021-12-10 16:03:42 +00:00
test-persistent-handles.cc [cleanup] Fix some -Wshadow warnings 2021-11-02 17:11:48 +00:00
test-platform.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
test-pointer-auth-arm64.cc
test-profile-generator.cc Reland "[profiler] Surface VM & Embedder State" 2021-12-07 19:00:07 +00:00
test-property-details.cc
test-ptr-compr-cage.cc [ext-code-space] Make the code space external for real 2021-10-20 16:29:51 +00:00
test-random-number-generator.cc
test-regexp.cc [api] V8::Initialize cleanup 2021-11-30 14:30:38 +00:00
test-representation.cc
test-roots.cc
test-sampler-api.cc Add test for builtin stack frames in profile sample 2021-11-24 09:33:30 +00:00
test-serialize.cc Revert "[class] implement reparsing of class instance member initializers" 2021-12-09 08:59:12 +00:00
test-shared-strings.cc [string] Make String internalization threadsafe for shared strings 2022-01-13 11:32:25 +00:00
test-simple-riscv64.cc [cleanup][test] Remove redundant NOLINT annotations 2021-04-30 11:46:14 +00:00
test-smi-lexicographic-compare.cc
test-stack-unwinding-win64.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
test-strings.cc [api] V8::Initialize cleanup 2021-11-30 14:30:38 +00:00
test-strtod.cc Reland "[base] Move most of src/numbers into base" 2021-06-24 15:00:27 +00:00
test-swiss-name-dictionary-csa.cc [ext-code-space][cleanup] Remove CodeDataContainer table 2021-12-16 17:32:39 +00:00
test-swiss-name-dictionary-infra.cc
test-swiss-name-dictionary-infra.h
test-swiss-name-dictionary-shared-tests.h [cctest] Fix -Wshadow warnings 2021-11-11 17:20:12 +00:00
test-swiss-name-dictionary.cc
test-symbols.cc
test-sync-primitives-arm64.cc
test-sync-primitives-arm.cc
test-temporal-parser.cc [Temporal] Part2 Add constructor and simple getters. 2022-01-07 19:18:33 +00:00
test-thread-termination.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
test-threads.cc
test-trace-event.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
test-traced-value.cc
test-transitions.cc [objects] Make PropertyKind an enum class to fix -Wshadow 2021-11-15 19:05:14 +00:00
test-transitions.h
test-typedarrays.cc
test-types.cc [turbofan] Extend Type system BitsetType to 64 bit. 2021-11-18 10:02:56 +00:00
test-unscopables-hidden-prototype.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
test-unwinder-code-pages.cc [ext-code-space][cleanup] Remove CodeDataContainer table 2021-12-16 17:32:39 +00:00
test-usecounters.cc
test-utils-arm64.cc
test-utils-arm64.h
test-utils.cc [api] V8::Initialize cleanup 2021-11-30 14:30:38 +00:00
test-v8windbg.cc
test-verifiers.cc
test-version.cc [base] Move utils/vector.h to base/vector.h 2021-06-18 13:33:13 +00:00
test-weakmaps.cc heap: Rename compaction flags 2021-11-10 09:01:59 +00:00
test-weaksets.cc heap: Rename compaction flags 2021-11-10 09:01:59 +00:00
test-web-snapshots.cc [web snapshots] Fix error reporting 2021-11-18 10:25:38 +00:00
testcfg.py
trace-extension.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
trace-extension.h Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
unicode-helpers.cc
unicode-helpers.h