v8/test/unittests
Anton Bikineev 1d3a1c6f66 cppgc: Avoid fragmentation in NormalPageMemoryRegion
NormalPageMemoryRegion is a span of 10 pages, all of which must belong
to the same space. This requirement imposes a fragmentation issue for virtual space, which is not ideal for the current 2GB cage
configuration.

The CL fixes this by mixing pages of different spaces inside the same
NormalPageMemoryRegion. With cage it's actually not necessary anymore
to have NormalPageMemoryRegion, but we keep it to allow the code to be
uniform for cage/non-cage configurations.

There is no type confusion across spaces, since pages (even empty) are
never shared between spaces. In addition, the shared cage puts an
additional memory constraint on the GC. So, there is no security benefit
in having NormalPageMemoryRegion assigned to a single space.

Savings in reserved address space:
cnn:2021: 14%
facebook_infinite_scroll:2018: 23%

Bug: chromium:1325007, chromium:1352649
Change-Id: I7b49032d581dd56feb8633734a1f37803e9526c6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3840749
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Anton Bikineev <bikineev@chromium.org>
Cr-Commit-Position: refs/heads/main@{#82584}
2022-08-19 09:13:27 +00:00
..
api [heap] Implement SimulateFullSpace for PagedNewSpace 2022-08-12 12:55:52 +00:00
asmjs [test] Remove some unused includes (2) 2022-07-19 08:55:55 +00:00
assembler [test] Migrate cctest/test-assembler-x64 to unittests/ 2022-08-18 12:41:11 +00:00
base Reland "[base] Add new API to protect data memory" 2022-08-11 13:06:07 +00:00
codegen [ext-code-space] Update loggers for handling Code-less builtins 2022-08-12 10:36:45 +00:00
compiler [turbofan][arm64] Emit Lsl for Int32MulWithOverflow when possible 2022-08-16 16:52:20 +00:00
compiler-dispatcher [include] Make Platform::GetPageAllocator abstract 2022-07-25 08:59:56 +00:00
date [test] Move cctest/test-date to unittests 2022-04-26 08:14:32 +00:00
debug [inspector] Speed up DebugPropertyIterator. 2021-09-13 12:52:11 +00:00
deoptimizer [test] Move cctest/test-deoptimization to unittests/ 2022-06-15 12:37:25 +00:00
diagnostics [gdbjit] Fix overlapping AddressRegion check 2021-08-19 17:29:57 +00:00
execution Reland "Reland "[TurboFan] Support BigIntMultiply"" 2022-08-09 14:26:01 +00:00
flags Set memory of flag values read-only on initialization 2022-08-16 08:38:39 +00:00
heap cppgc: Avoid fragmentation in NormalPageMemoryRegion 2022-08-19 09:13:27 +00:00
interpreter [debug] Fix source position around class literals 2022-08-16 07:16:47 +00:00
js-atomics Reland^2 "[shared-struct] Add Atomics.Condition" 2022-08-11 00:12:22 +00:00
libplatform [sandbox] Initialize sandbox during V8::Initialize 2022-07-15 09:29:32 +00:00
libsampler [test] move cctest/libsampler to unittests/libsampler 2022-05-17 09:51:27 +00:00
logging [ext-code-space] Remove more Code <-> CodeT roundtrips 2022-08-11 10:20:32 +00:00
numbers [test] Move cctest/test-diy-fp to unittests/numbers/ 2022-05-31 07:34:19 +00:00
objects [runtime] Add runtime checks for name collisions 2022-08-05 18:05:59 +00:00
parser [heap] Update unittests for MinorMC 2022-08-10 06:54:03 +00:00
profiler [test] Move cctest/test-circular-queue to unittests 2022-04-25 14:49:26 +00:00
regexp Reland "[riscv32] Add RISCV32 backend" 2022-08-04 12:47:44 +00:00
regress [heap] Remove Factory::NewUninitializedFixedArray 2021-04-26 13:52:38 +00:00
runtime Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
sandbox [sandbox] Initialize sandbox during V8::Initialize 2022-07-15 09:29:32 +00:00
strings [heap] Implement SimulateFullSpace for PagedNewSpace 2022-08-12 12:55:52 +00:00
tasks [test] Add a unittest platform setup mixin 2022-04-06 13:07:43 +00:00
torque Reland "Reland "[Torque] Generalize Torque literals to larger size"" 2022-02-04 09:40:24 +00:00
tracing [test] Move cctest/test-traced-value to unittests/tracing/ 2022-05-30 06:03:18 +00:00
utils [heap] Update unittests for MinorMC 2022-08-10 06:54:03 +00:00
wasm Reland "[wasm-gc] Add extern.externalize" 2022-08-18 07:41:29 +00:00
web-snapshot [test] Migrate cctest/test-web-snapshots to unittests/ 2022-08-11 07:02:42 +00:00
zone [test] Add a unittest platform setup mixin 2022-04-06 13:07:43 +00:00
avoid-windows-h-includes.cc Test that heap-inl.h doesn't include windows.h 2021-10-14 21:18:51 +00:00
BUILD.gn [test] Migrate cctest/test-assembler-x64 to unittests/ 2022-08-18 12:41:11 +00:00
DEPS Reland "Reland "[test] Move tracing cctest to unittests"" 2022-05-31 16:16:57 +00:00
gay-fixed.cc [test] Move cctest/{test-bignum-dtoa, test-dtoa 2022-05-17 01:38:57 +00:00
gay-fixed.h [test] Move cctest/{test-bignum-dtoa, test-dtoa 2022-05-17 01:38:57 +00:00
gay-precision.cc [test] Move cctest/{test-bignum-dtoa, test-dtoa 2022-05-17 01:38:57 +00:00
gay-precision.h [test] Move cctest/{test-bignum-dtoa, test-dtoa 2022-05-17 01:38:57 +00:00
gay-shortest.cc [test] Move cctest/{test-bignum-dtoa, test-dtoa 2022-05-17 01:38:57 +00:00
gay-shortest.h [test] Move cctest/{test-bignum-dtoa, test-dtoa 2022-05-17 01:38:57 +00:00
run-all-unittests.cc [test] Add perfetto initialisation to unittest runner 2022-06-01 12:32:17 +00:00
test-helpers.cc [compiler-dispatcher] Move Job pointer to SFI 2021-12-08 16:03:35 +00:00
test-helpers.h [compiler] Introduce ReusableUnoptimizedCompileState 2021-12-08 11:14:27 +00:00
test-utils.cc [flags] Protect individual flag updates 2022-06-03 10:24:40 +00:00
test-utils.h [sandbox] Initialize sandbox during V8::Initialize 2022-07-15 09:29:32 +00:00
testcfg.py [test] Refactor testrunner (4) 2022-07-18 09:52:24 +00:00
unittests.status [test] Migrate cctest/test-assembler-x64 to unittests/ 2022-08-18 12:41:11 +00:00