v8/test/unittests/heap
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
..
base Reland "[heap] Rework Worklist base type" 2022-08-16 15:20:23 +00:00
cppgc cppgc: Avoid fragmentation in NormalPageMemoryRegion 2022-08-19 09:13:27 +00:00
cppgc-js Reland "[handles] Remove precise on-stack representation of global handles" 2022-08-10 11:59:24 +00:00
allocation-observer-unittest.cc [heap] Support removing of observers during Step() 2020-08-17 10:42:32 +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 Reland "[heap] Sweep code pages on the background thread" 2022-06-22 07:59:18 +00:00
embedder-tracing-unittest.cc [heap] Fix test that requires manual GC scheduling 2022-08-18 14:39:58 +00:00
gc-idle-time-handler-unittest.cc Reland "Fix -Wimplicit-int-float-conversions." 2021-06-29 16:36:18 +00:00
gc-tracer-unittest.cc heap: Inline GCTracer::Scope constructor and destructor 2022-04-13 13:17:39 +00:00
global-safepoint-unittest.cc [heap] Set interrupt when requesting global safepoints 2022-08-10 23:17:24 +00:00
heap-controller-unittest.cc [cleanup] Replace all remaining Min/Max uses with std::min/max 2020-11-24 17:32:01 +00:00
heap-unittest.cc [heap] Fix TSan race in HeapTest.GrowAndShrinkNewSpace 2022-08-16 07:45:57 +00:00
heap-utils.cc [heap] Add IncrementalMarking::AdvanceForTesting bottleneck 2022-08-18 07:50:29 +00:00
heap-utils.h [heap] Implement SimulateFullSpace for PagedNewSpace 2022-08-12 12:55:52 +00:00
index-generator-unittest.cc [Heap]: Implement IndexGenerator for Jobs use cases. 2020-09-11 19:25:33 +00:00
lab-unittest.cc [heap] Add Heap::NotifyObjectSizeChange for right-trimming 2022-04-27 08:01:24 +00:00
list-unittest.cc [heap] Make Heap::Contains const 2020-05-13 13:19:22 +00:00
local-factory-unittest.cc [compiler] Introduce ReusableUnoptimizedCompileState 2021-12-08 11:14:27 +00:00
local-handles-unittest.cc [test] Migrate cctest/test-local-handles to unittests/ 2022-08-15 16:51:26 +00:00
local-heap-unittest.cc [heap] Invoke internal GC callbacks before Heap verification 2022-08-17 09:00:28 +00:00
marking-inner-pointer-resolution-unittest.cc [heap] Implement page lookup for IPR 2022-07-27 13:07:48 +00:00
marking-unittest.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
marking-worklist-unittest.cc cppgc-js, heap: Concurrently push references from v8 to Oilpan 2021-12-27 11:34:29 +00:00
memory-reducer-unittest.cc [gc] Delay start of memory reducer. 2022-06-21 18:59:27 +00:00
object-start-bitmap-unittest.cc heap: Fix and clean up object start bitmap 2022-05-31 16:37:08 +00:00
object-stats-unittest.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
page-promotion-unittest.cc [heap] Implement SimulateFullSpace for PagedNewSpace 2022-08-12 12:55:52 +00:00
persistent-handles-unittest.cc [test] Move cctest/test-persistent-handles to 2022-06-27 11:30:34 +00:00
progressbar-unittest.cc heap: Fix TSAN race when setting a flag after page initialization 2021-08-19 10:28:57 +00:00
safepoint-unittest.cc [test][cleanup] Fix -Wshadow warnings in unittests 2021-09-27 08:59:01 +00:00
slot-set-unittest.cc [heap] Simplify Sweeper::CleanupInvalidTypedSlotsOfFreeRanges 2022-04-06 13:22:03 +00:00
spaces-unittest.cc [heap] Add Heap::NotifyObjectSizeChange for right-trimming 2022-04-27 08:01:24 +00:00
unmapper-unittest.cc [sandbox] Turn V8_SANDBOX into V8_ENABLE_SANDBOX 2022-05-13 16:23:23 +00:00