v8/test/cctest
Dominik Inführ a537be463f [heap] Track unprotected chunks in LocalHeap
CodePageCollectionMemoryModificationScope now increases a per-thread
counter and inserts unprotected code chunks into a thread-local set
of chunks. This information is moved from Heap into LocalHeap.

We can't use kMaxWriteUnprotectCounter on the unprotect counter on the
MemoryChunk anymore, since e.g. for concurrent Sparkplug N threads might
now allocate a code object on the same page and since
CodePageCollectionMemoryModificationScope doesn't know about the
other threads anymore, each thread has to increase that counter by 1.
We DCHECK that nesting depth now in the scope's constructor instead.

We still need to remove chunks from `unprotected_memory_chunks_` when
freeing an executable MemoryChunk during GC. Fortunately we can still do
this, since all threads are in a safepoint during GC and we can remove
the chunk from each thread-local set without any synchronization.

Bug: chromium:1330887
Change-Id: Icefc61b8d8de113d8dcfb1cf64122d12dd9798c4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3688516
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/main@{#81047}
2022-06-09 16:35:23 +00:00
..
compiler Fix compilation with gcc 2022-06-01 18:17:22 +00:00
heap [heap] Track unprotected chunks in LocalHeap 2022-06-09 16:35:23 +00:00
interpreter [interpreter] Release temp register earlier to reduce frame size 2022-06-09 08:13:43 +00:00
parsing [test] Move cctest/parsing to unittests/parser 2022-05-17 13:07:30 +00:00
torque [csa, torque, cleanup] Rename CSA_ASSERT to CSA_DCHECK 2021-09-30 08:41:23 +00:00
wasm [api] Deprecate CopyablePersistentTraits 2022-06-08 14:15:12 +00:00
assembler-helper-arm.cc [test, arm] Take isolate as argument for AssembleCode 2020-11-18 14:17:05 +00:00
assembler-helper-arm.h [test, arm] Take isolate as argument for AssembleCode 2020-11-18 14:17:05 +00:00
BUILD.gn Revert "Build cctest while building V8" 2022-06-09 09:23:02 +00:00
cctest-utils.h [LOONG64] Add LoongArch64 backend 2021-08-16 13:05:19 +00:00
cctest.cc [sandbox] Turn V8_SANDBOX into V8_ENABLE_SANDBOX 2022-05-13 16:23:23 +00:00
cctest.h [test] Make cctest run one test, with maybe custom platform 2022-04-05 09:39:18 +00:00
cctest.status [wasm-relaxed-simd] Liftoff prototypes for Arm Trunc/Sat operations 2022-06-07 18:00:25 +00:00
collector.h [base] Move utils/vector.h to base/vector.h 2021-06-18 13:33:13 +00:00
DEPS Reland "[tracing] Roll perfetto @ 28b633cd" 2019-09-06 13:42:02 +00:00
expression-type-collector-macros.h [cleanup] Fix remaining (D)CHECK macro usages 2017-10-18 10:12:31 +00:00
manually-externalized-buffer.h [api] Deprecate [Shared]ArrayBuffer::Externalize/GetContents and constructors 2019-10-29 22:01:54 +00:00
OWNERS Update OWNERS in test/* 2021-02-25 14:26:24 +00:00
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 Replace STATIC_ASSERT with static_assert 2022-05-13 13:46:27 +00:00
setup-isolate-for-tests.cc [interpreter] Always put bytecode handlers in builtins table 2018-09-20 09:58:15 +00:00
setup-isolate-for-tests.h Move initialization code into src/init 2019-05-16 12:36:15 +00:00
test-access-checks.cc Deprecate some signature checks 2022-03-31 12:11:21 +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 [runtime] Add interceptors side effects detector 2022-05-12 10:33:10 +00:00
test-allocation.cc Place bit_cast<>() in the v8::base:: namespace. 2022-05-05 17:56:39 +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 Fix includes in test-api-interceptors.cc 2022-05-12 13:08:15 +00:00
test-api-stack-traces.cc [cleanup] Make the CaptureStackTrace test threaded 2022-05-31 09:52:38 +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 [api] Remove deprecated global handle APIs 2022-06-09 15:39:03 +00:00
test-api.h Reland "Fix -Wimplicit-int-float-conversions." 2021-06-29 16:36:18 +00:00
test-assembler-arm64.cc Replace STATIC_ASSERT with static_assert 2022-05-13 13:46:27 +00:00
test-assembler-arm.cc Replace STATIC_ASSERT with static_assert 2022-05-13 13:46:27 +00:00
test-assembler-ia32.cc Replace STATIC_ASSERT with static_assert 2022-05-13 13:46:27 +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 Place bit_cast<>() in the v8::base:: namespace. 2022-05-05 17:56:39 +00:00
test-assembler-mips.cc Place bit_cast<>() in the v8::base:: namespace. 2022-05-05 17:56:39 +00:00
test-assembler-ppc.cc [codegen] Change RegList into a class 2022-03-14 12:59:48 +00:00
test-assembler-riscv64.cc [riscv64] Fix name ambiguous 2022-05-30 01:34:06 +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 assembly for SSE2_UNOP instructions 2022-04-19 13:01:50 +00:00
test-atomicops.cc Add Relaxed_Memcmp 2021-12-03 18:00:48 +00:00
test-code-stub-assembler.cc [change-array-by-copy] Refactor ConvertToRelativeIndex 2022-05-27 21:13:14 +00:00
test-constantpool.cc PPC: [cleanup] Replace all remaining Min/Max uses with std::min/max 2020-11-25 08:49:53 +00:00
test-cpu-profiler.cc [maglev] Disable on TickLines test 2022-05-13 16:25:34 +00:00
test-debug-helper.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
test-debug.cc [api] Deprecate PersistentValueVector 2022-06-09 08:44:13 +00:00
test-deoptimization.cc [flags] Rename --opt to --turbofan 2022-05-03 12:10:30 +00:00
test-descriptor-array.cc Replace STATIC_ASSERT with static_assert 2022-05-13 13:46:27 +00:00
test-dictionary.cc Disable --stress-concurrent-allocation for tests that change free lists 2020-09-03 11:15:39 +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-regex-helper.cc Unify naming convention for tests and filter them in TestLoader for cctest 2022-04-20 14:19:55 +00:00
test-disasm-regex-helper.h Unify naming convention for tests and filter them in TestLoader for cctest 2022-04-20 14:19:55 +00:00
test-factory.cc Replace STATIC_ASSERT with static_assert 2022-05-13 13:46:27 +00:00
test-feedback-vector.cc [flags] Rename --opt to --turbofan 2022-05-03 12:10:30 +00:00
test-feedback-vector.h Revert "factory: Move FeedbackVector construction to type" 2022-01-21 17:09:16 +00:00
test-field-type-tracking.cc Replace STATIC_ASSERT with static_assert 2022-05-13 13:46:27 +00:00
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 Move architecture dependent files 2019-05-28 14:02:15 +00:00
test-global-handles.cc [api] Remove deprecated global handle APIs 2022-06-09 15:39:03 +00:00
test-global-object.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-hashcode.cc [dict-proto] Rename v8_dict_mode_prototypes flag 2021-03-29 11:53:45 +00:00
test-heap-profiler.cc [api] Remove deprecated global handle APIs 2022-06-09 15:39:03 +00:00
test-helper-riscv64.cc Add RISC-V backend 2021-02-09 17:06:36 +00:00
test-helper-riscv64.h Place bit_cast<>() in the v8::base:: namespace. 2022-05-05 17:56:39 +00:00
test-icache.cc Reland "[rwx][mac] Support fast W^X permission switching on Apple Silicon (M1)" 2022-04-28 14:08:11 +00:00
test-identity-map.cc [string] Add flag to use string forwarding table instead of ThinString 2022-04-27 09:09:30 +00:00
test-ignition-statistics-extension.cc Fix counting ignition dispatches 2021-06-07 18:47:24 +00:00
test-inobject-slack-tracking.cc [flags] Rename --opt to --turbofan 2022-05-03 12:10:30 +00:00
test-inspector.cc Disable command-line API for untrusted inspector clients. 2022-06-01 09:37:58 +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 Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-js-arm64-variables.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-js-to-wasm.cc Reland "[osr] Enable concurrent OSR" 2022-04-11 13:09:35 +00:00
test-js-weak-refs.cc [weakrefs] Set unregister_token to undefined when unregistering 2022-05-03 21:09:47 +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 [flags] Rename --opt to --turbofan 2022-05-03 12:10:30 +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-macro-assembler-arm64.cc Replace STATIC_ASSERT with static_assert 2022-05-13 13:46:27 +00:00
test-macro-assembler-arm.cc Replace STATIC_ASSERT with static_assert 2022-05-13 13:46:27 +00:00
test-macro-assembler-loong64.cc Replace STATIC_ASSERT with static_assert 2022-05-13 13:46:27 +00:00
test-macro-assembler-mips64.cc Replace STATIC_ASSERT with static_assert 2022-05-13 13:46:27 +00:00
test-macro-assembler-mips.cc Replace STATIC_ASSERT with static_assert 2022-05-13 13:46:27 +00:00
test-macro-assembler-riscv64.cc Replace STATIC_ASSERT with static_assert 2022-05-13 13:46:27 +00:00
test-macro-assembler-x64.cc Replace STATIC_ASSERT with static_assert 2022-05-13 13:46:27 +00:00
test-mementos.cc [heap] Make creation of NewSpace and NewLargeObjectSpace optional 2021-05-04 06:47:54 +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 Replace STATIC_ASSERT with static_assert 2022-05-13 13:46:27 +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 [arm64][cfi] Enable sim_abort_on_bad_auth by default. 2021-02-05 10:23:40 +00:00
test-profile-generator.cc [flags] Rename --opt to --turbofan 2022-05-03 12:10:30 +00:00
test-property-details.cc [dict-proto] Allow storing certain PropertyDetails in single byte 2021-02-04 13:45:13 +00:00
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 Place bit_cast<>() in the v8::base:: namespace. 2022-05-05 17:56:39 +00:00
test-sampler-api.cc Add test for builtin stack frames in profile sample 2021-11-24 09:33:30 +00:00
test-serialize.cc Reland "Allow lookup of matching scripts in Isolate compilation cache" 2022-06-08 17:05:22 +00:00
test-shared-strings.cc [string] Add flag to use string forwarding table instead of ThinString 2022-04-27 09:09:30 +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 [cleanup] Eliminate non-const reference parameters 2019-09-10 09:31:07 +00:00
test-stack-unwinding-win64.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
test-strings.cc Replace STATIC_ASSERT with static_assert 2022-05-13 13:46:27 +00:00
test-swiss-name-dictionary-csa.cc Replace STATIC_ASSERT with static_assert 2022-05-13 13:46:27 +00:00
test-swiss-name-dictionary-infra.cc [runtime] Clean up runtime function Arguments accesses 2022-03-09 13:03:15 +00:00
test-swiss-name-dictionary-infra.h Reland [dict-proto] C++ implementation of SwissNameDictionary, pt. 10 2021-03-24 17:12:21 +00:00
test-swiss-name-dictionary-shared-tests.h Replace STATIC_ASSERT with static_assert 2022-05-13 13:46:27 +00:00
test-swiss-name-dictionary.cc Reland "[dict-proto] SIMD support for SwissNameDictionary in Torque" 2021-03-31 13:01:34 +00:00
test-sync-primitives-arm64.cc Reland "Reland "[deoptimizer] Change deopt entries into builtins"" 2020-10-21 06:01:38 +00:00
test-sync-primitives-arm.cc [test, arm] Take isolate as argument for AssembleCode 2020-11-18 14:17:05 +00:00
test-temporal-parser.cc [Temporal] Syntax error if DateExtendedYear is -000000 2022-05-24 04:58:31 +00:00
test-thread-termination.cc [init] Install console API to context extras binding 2022-02-08 15:48:33 +00:00
test-trace-event.cc [test] Make cctest run one test, with maybe custom platform 2022-04-05 09:39:18 +00:00
test-transitions.cc Replace STATIC_ASSERT with static_assert 2022-05-13 13:46:27 +00:00
test-transitions.h Reland "[runtime] Refactor TransitionsAccessor" 2022-02-14 12:05:06 +00:00
test-typedarrays.cc [api] Remove deprecated [Shared]ArrayBuffer API 2021-03-12 16:24:42 +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 [flags] Rename --opt to --turbofan 2022-05-03 12:10:30 +00:00
test-usecounters.cc [atomics] Remove the deprecated Atomics.wake 2020-08-10 23:02:17 +00:00
test-utils-arm64.cc Place bit_cast<>() in the v8::base:: namespace. 2022-05-05 17:56:39 +00:00
test-utils-arm64.h Place bit_cast<>() in the v8::base:: namespace. 2022-05-05 17:56:39 +00:00
test-utils.cc Replace STATIC_ASSERT with static_assert 2022-05-13 13:46:27 +00:00
test-v8windbg.cc [tools] Add v8windbg, a WinDbg extension for V8 2020-02-18 19:16:18 +00:00
test-verifiers.cc [cleanup] Remove atomic kRelaxed accessors in favour for non-atomic ones 2021-03-08 10:57:19 +00:00
test-weakmaps.cc [heap] Separate GC phases flag. 2022-04-06 07:23:39 +00:00
test-weaksets.cc heap: Rename compaction flags 2021-11-10 09:01:59 +00:00
test-web-snapshots.cc [web snapshot] Add support for derived constructors 2022-05-18 07:42:21 +00:00
testcfg.py Add prefix to cctests when listed to make retrieving them more robust 2022-04-27 09:26:10 +00:00
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 Move string-related files to src/strings 2019-05-21 07:17:48 +00:00
unicode-helpers.h Move string-related files to src/strings 2019-05-21 07:17:48 +00:00