- 06 Jun, 2021 1 commit
-
-
Dominik Inführ authored
This is a reland of b0c70710 The first CL got reverted because of build errors. This CL replaces the remaining usage of is_local_space() with is_compaction_space(). Supposedly this was a leftover because https://crrev.com/c/2928189 landed at roughly the same time. Original change's description: > [heap] Remove unused LocalSpace class > > LocalSpace was introduced for off-heap spaces with concurrent bytecode > compilation finalization. However, finalization ended up using > LocalHeap for concurrent allocations. LocalSpace is therefore unused > and can be removed. > > This CL removes LocalSpace and renames all mentions of local space to > compaction space. Compaction space was the only local space left. > > Change-Id: I12a8a2724f777a77ddb9957fe2d8e89febfebbaf > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2930169 > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> > Cr-Commit-Position: refs/heads/master@{#74914} Change-Id: I993c47fe85f4140f5d6137afde2653a48047cafb Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2939983Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#74957}
-
- 02 Jun, 2021 2 commits
-
-
Clemens Backes authored
This reverts commit b0c70710. Reason for revert: Lots of compile errors. Original change's description: > [heap] Remove unused LocalSpace class > > LocalSpace was introduced for off-heap spaces with concurrent bytecode > compilation finalization. However, finalization ended up using > LocalHeap for concurrent allocations. LocalSpace is therefore unused > and can be removed. > > This CL removes LocalSpace and renames all mentions of local space to > compaction space. Compaction space was the only local space left. > > Change-Id: I12a8a2724f777a77ddb9957fe2d8e89febfebbaf > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2930169 > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> > Cr-Commit-Position: refs/heads/master@{#74914} Change-Id: I3a654da0ddb556c1fb8767f8401ecd3b46786bea No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2933140 Auto-Submit: Clemens Backes <clemensb@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Cr-Commit-Position: refs/heads/master@{#74915}
-
Dominik Inführ authored
LocalSpace was introduced for off-heap spaces with concurrent bytecode compilation finalization. However, finalization ended up using LocalHeap for concurrent allocations. LocalSpace is therefore unused and can be removed. This CL removes LocalSpace and renames all mentions of local space to compaction space. Compaction space was the only local space left. Change-Id: I12a8a2724f777a77ddb9957fe2d8e89febfebbaf Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2930169Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#74914}
-
- 17 May, 2021 1 commit
-
-
Santiago Aboy Solanes authored
Continuing the cleanups and using the tags rather than synchronized_ in the name of the accessors. `map_word` (and its setter) can also be marked explicitly as relaxed to show that they are atomic accessors. Bug: v8:7790 Change-Id: I0725054ef37022c777f47660cb11cf839bb7f273 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2897094Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#74605}
-
- 20 Apr, 2021 1 commit
-
-
Dominik Inführ authored
This allows using --track-retaining-path with incremental marking enabled. This CL will also track when an object was kept alive through the write barrier or the RetainMaps feature. Bug: v8:11645 Change-Id: I08ab5e500ae3580aead0c188c2caeb8f2a5f9f07 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2829440Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#74061}
-
- 12 Apr, 2021 1 commit
-
-
Wenyu Zhao authored
This CL adds features to pack/unpack map words. Currently V8 cannot store extra metadata in object headers -- because V8 objects do not have a proper header, but only a map pointer at the start of the object. To store per-object metadata like marking data, a side table is required as the per-object metadata storage. This CL enables V8 to use higher unused bits in a 64-bit map word as per-object metadata storage. Map pointer stores come with an extra step to encode the metadata into the pointer (we call it "map packing"). Map pointer loads will also remove the metadata bits as well (we call it "map packing"). Since the map word is no longer a valid pointer after packing, we also change the tag of the packed map word to make it looks like a Smi. This helps various GC and barrier code to correctly skip them instead of blindly dereferencing this invalid pointer. A ninja flag `v8_enable_map_packing` is provided to turn this map-packing feature on and off. It is disabled by default. * Only works on x64 platform, with `v8_enable_pointer_compression` set to `false` Bug: v8:11624 Change-Id: Ia2bdf79553945e5fc0b0874c87803d2cc733e073 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2247561Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#73915}
-
- 07 Apr, 2021 1 commit
-
-
Etienne Pierre-doray authored
Now that all users are migrated to Jobs API. Bug: chromium:1196703 Change-Id: Ic48cce441c1793b1b33f0fc3d6a60847f2eefb2f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2810156 Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#73838}
-
- 11 Mar, 2021 3 commits
-
-
Clemens Backes authored
This is a reland of 80f5dfda. A condition in pipeline.cc was inverted, which lead to a CSA verifier error. Original change's description: > [no-wasm] Exclude src/wasm from compilation > > This is the biggest chunk, including > - all of src/wasm, > - torque file for wasm objects, > - torque file for wasm builtins, > - wasm builtins, > - wasm runtime functions, > - int64 lowering, > - simd scala lowering, > - WasmGraphBuilder (TF graph construction for wasm), > - wasm frame types, > - wasm interrupts, > - the JSWasmCall opcode, > - wasm backing store allocation. > > Those components are all recursively entangled, so I found no way to > split this change up further. > > Some includes that were recursively included by wasm headers needed to > be added explicitly now. > > backing-store-unittest.cc is renamed to wasm-backing-store-unittest.cc > because it only tests wasm backing stores. This file is excluded from > no-wasm builds then. > > R=jkummerow@chromium.org, jgruber@chromium.org, mlippautz@chromium.org, petermarshall@chromium.org > > Bug: v8:11238 > Change-Id: I7558f2d12d2dd6c65128c4de7b79173668c80b2b > Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2742955 > Commit-Queue: Clemens Backes <clemensb@chromium.org> > Reviewed-by: Peter Marshall <petermarshall@chromium.org> > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Cr-Commit-Position: refs/heads/master@{#73344} TBR=jgruber@chromium.org Bug: v8:11238 Change-Id: I20bd2847a59c68738b5a336cd42582b7b1499585 Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel Cq-Include-Trybots: luci.v8.try:v8_linux_verify_csa_rel_ng Cq-Include-Trybots: luci.v8.try:v8_linux64_verify_csa_rel_ng Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2752867Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#73348}
-
Clemens Backes authored
This reverts commit 80f5dfda. Reason for revert: Fails CSA verification: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux%20-%20verify%20csa/21766/overview Original change's description: > [no-wasm] Exclude src/wasm from compilation > > This is the biggest chunk, including > - all of src/wasm, > - torque file for wasm objects, > - torque file for wasm builtins, > - wasm builtins, > - wasm runtime functions, > - int64 lowering, > - simd scala lowering, > - WasmGraphBuilder (TF graph construction for wasm), > - wasm frame types, > - wasm interrupts, > - the JSWasmCall opcode, > - wasm backing store allocation. > > Those components are all recursively entangled, so I found no way to > split this change up further. > > Some includes that were recursively included by wasm headers needed to > be added explicitly now. > > backing-store-unittest.cc is renamed to wasm-backing-store-unittest.cc > because it only tests wasm backing stores. This file is excluded from > no-wasm builds then. > > R=jkummerow@chromium.org, jgruber@chromium.org, mlippautz@chromium.org, petermarshall@chromium.org > > Bug: v8:11238 > Change-Id: I7558f2d12d2dd6c65128c4de7b79173668c80b2b > Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2742955 > Commit-Queue: Clemens Backes <clemensb@chromium.org> > Reviewed-by: Peter Marshall <petermarshall@chromium.org> > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Cr-Commit-Position: refs/heads/master@{#73344} Bug: v8:11238 Change-Id: I93672002c1faa36bb0bb5b4a9cc2032ee2ccd814 Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2752866 Auto-Submit: Clemens Backes <clemensb@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Cr-Commit-Position: refs/heads/master@{#73346}
-
Clemens Backes authored
This is the biggest chunk, including - all of src/wasm, - torque file for wasm objects, - torque file for wasm builtins, - wasm builtins, - wasm runtime functions, - int64 lowering, - simd scala lowering, - WasmGraphBuilder (TF graph construction for wasm), - wasm frame types, - wasm interrupts, - the JSWasmCall opcode, - wasm backing store allocation. Those components are all recursively entangled, so I found no way to split this change up further. Some includes that were recursively included by wasm headers needed to be added explicitly now. backing-store-unittest.cc is renamed to wasm-backing-store-unittest.cc because it only tests wasm backing stores. This file is excluded from no-wasm builds then. R=jkummerow@chromium.org, jgruber@chromium.org, mlippautz@chromium.org, petermarshall@chromium.org Bug: v8:11238 Change-Id: I7558f2d12d2dd6c65128c4de7b79173668c80b2b Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2742955 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#73344}
-
- 04 Feb, 2021 1 commit
-
-
Dominik Inführ authored
Sweeping was already restarted, ignore chunks that might be swept concurrently. Bug: chromium:1174007 Change-Id: I954bf4b25ddb27a612b9fd33bad1f1ba34358719 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2674005Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#72529}
-
- 16 Dec, 2020 2 commits
-
-
Dominik Inführ authored
This CL completes sweeping in Heap::PerformGarbageCollection before invoking the actual collection. Collection code can now assume that sweeping was already finished. This helps with emitting the right epoch for sweeping and avoids a data-race when updating the epoch while sweeping tasks are still running. Bug: chromium:1154636 Change-Id: Ic9c4ac49568199d0ea48f17eea132079defe74a5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2573478 Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#71794}
-
Dominik Inführ authored
This is a reland of b614cd78 Original change's description: > Reland "Reland "[heap] Add epoch to GC tracing events"" > > This is a reland of 3238162d > > No changes since the last reland. > > Original change's description: > > Reland "[heap] Add epoch to GC tracing events" > > > > This is a reland of be52501d > > > > Fix data race by not emitting the epoch for sweeper background jobs > > at them moment. > > > > Original change's description: > > > [heap] Add epoch to GC tracing events > > > > > > This CL adds the TRACE_GC_EPOCH macro, which adds the epoch as attribute > > > to the trace event. Use TRACE_GC_EPOCH for top-level events, nested > > > events can get the information from its parent. > > > > > > V8's GC needs an epoch for young and full collections, since scavenges > > > also occur during incremental marking. The epoch is also process-wide, > > > so different isolates do not reuse the same id. > > > > > > Change-Id: I8889bccce51e008374b4796445a50062bd87a45d > > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2565247 > > > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> > > > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > > > Cr-Commit-Position: refs/heads/master@{#71521} > > > > Change-Id: Ib8f4bfdc01c459955eb6db63bb6e24a8aa068f09 > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2567702 > > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> > > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#71567} > > TBR=ulan@chromium.org,dinfuehr@chromium.org > > Change-Id: I09dcfabbad4ef1ad50e02a227282982cd7d87997 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2571122 > Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> > Cr-Commit-Position: refs/heads/master@{#71609} Change-Id: I89dfa5c7658197348a39be51b75dba77bfd4a70b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2577470 Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#71777}
-
- 04 Dec, 2020 2 commits
-
-
Sathya Gunasekaran authored
This reverts commit b614cd78. Reason for revert: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64/40448/overview Original change's description: > Reland "Reland "[heap] Add epoch to GC tracing events"" > > This is a reland of 3238162d > > No changes since the last reland. > > Original change's description: > > Reland "[heap] Add epoch to GC tracing events" > > > > This is a reland of be52501d > > > > Fix data race by not emitting the epoch for sweeper background jobs > > at them moment. > > > > Original change's description: > > > [heap] Add epoch to GC tracing events > > > > > > This CL adds the TRACE_GC_EPOCH macro, which adds the epoch as attribute > > > to the trace event. Use TRACE_GC_EPOCH for top-level events, nested > > > events can get the information from its parent. > > > > > > V8's GC needs an epoch for young and full collections, since scavenges > > > also occur during incremental marking. The epoch is also process-wide, > > > so different isolates do not reuse the same id. > > > > > > Change-Id: I8889bccce51e008374b4796445a50062bd87a45d > > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2565247 > > > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> > > > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > > > Cr-Commit-Position: refs/heads/master@{#71521} > > > > Change-Id: Ib8f4bfdc01c459955eb6db63bb6e24a8aa068f09 > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2567702 > > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> > > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#71567} > > TBR=ulan@chromium.org,dinfuehr@chromium.org > > Change-Id: I09dcfabbad4ef1ad50e02a227282982cd7d87997 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2571122 > Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> > Cr-Commit-Position: refs/heads/master@{#71609} TBR=ulan@chromium.org,dinfuehr@chromium.org Change-Id: I9dfd37f969ec0c5e5f278e6a82732995fd82e5d9 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2574002Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#71610}
-
Dominik Inführ authored
This is a reland of 3238162d No changes since the last reland. Original change's description: > Reland "[heap] Add epoch to GC tracing events" > > This is a reland of be52501d > > Fix data race by not emitting the epoch for sweeper background jobs > at them moment. > > Original change's description: > > [heap] Add epoch to GC tracing events > > > > This CL adds the TRACE_GC_EPOCH macro, which adds the epoch as attribute > > to the trace event. Use TRACE_GC_EPOCH for top-level events, nested > > events can get the information from its parent. > > > > V8's GC needs an epoch for young and full collections, since scavenges > > also occur during incremental marking. The epoch is also process-wide, > > so different isolates do not reuse the same id. > > > > Change-Id: I8889bccce51e008374b4796445a50062bd87a45d > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2565247 > > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> > > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#71521} > > Change-Id: Ib8f4bfdc01c459955eb6db63bb6e24a8aa068f09 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2567702 > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#71567} TBR=ulan@chromium.org,dinfuehr@chromium.org Change-Id: I09dcfabbad4ef1ad50e02a227282982cd7d87997 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2571122Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#71609}
-
- 02 Dec, 2020 2 commits
-
-
Maya Lekova authored
This reverts commit 3238162d. Reason for revert: Speculative revert for https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64/40411/overview, causing SEGV_ACCERR on test/mjsunit/harmony/promise-any-overflow-2.js and other failures in minor_mc variant Original change's description: > Reland "[heap] Add epoch to GC tracing events" > > This is a reland of be52501d > > Fix data race by not emitting the epoch for sweeper background jobs > at them moment. > > Original change's description: > > [heap] Add epoch to GC tracing events > > > > This CL adds the TRACE_GC_EPOCH macro, which adds the epoch as attribute > > to the trace event. Use TRACE_GC_EPOCH for top-level events, nested > > events can get the information from its parent. > > > > V8's GC needs an epoch for young and full collections, since scavenges > > also occur during incremental marking. The epoch is also process-wide, > > so different isolates do not reuse the same id. > > > > Change-Id: I8889bccce51e008374b4796445a50062bd87a45d > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2565247 > > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> > > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#71521} > > Change-Id: Ib8f4bfdc01c459955eb6db63bb6e24a8aa068f09 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2567702 > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#71567} TBR=ulan@chromium.org,dinfuehr@chromium.org Change-Id: I29a131f798c3536d16e4b4c44c0fcb8b35dd0051 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2569764Reviewed-by:
Maya Lekova <mslekova@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#71569}
-
Dominik Inführ authored
This is a reland of be52501d Fix data race by not emitting the epoch for sweeper background jobs at them moment. Original change's description: > [heap] Add epoch to GC tracing events > > This CL adds the TRACE_GC_EPOCH macro, which adds the epoch as attribute > to the trace event. Use TRACE_GC_EPOCH for top-level events, nested > events can get the information from its parent. > > V8's GC needs an epoch for young and full collections, since scavenges > also occur during incremental marking. The epoch is also process-wide, > so different isolates do not reuse the same id. > > Change-Id: I8889bccce51e008374b4796445a50062bd87a45d > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2565247 > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#71521} Change-Id: Ib8f4bfdc01c459955eb6db63bb6e24a8aa068f09 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2567702 Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#71567}
-
- 01 Dec, 2020 2 commits
-
-
Clemens Backes authored
This reverts commit be52501d. Reason for revert: Multiple TSan issues: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20TSAN/34457/overview (and others) Original change's description: > [heap] Add epoch to GC tracing events > > This CL adds the TRACE_GC_EPOCH macro, which adds the epoch as attribute > to the trace event. Use TRACE_GC_EPOCH for top-level events, nested > events can get the information from its parent. > > V8's GC needs an epoch for young and full collections, since scavenges > also occur during incremental marking. The epoch is also process-wide, > so different isolates do not reuse the same id. > > Change-Id: I8889bccce51e008374b4796445a50062bd87a45d > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2565247 > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#71521} TBR=ulan@chromium.org,dinfuehr@chromium.org Change-Id: I8219595f0751de84cbea7e047ef21aa95da32f07 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2567696Reviewed-by:
Clemens Backes <clemensb@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#71523}
-
Dominik Inführ authored
This CL adds the TRACE_GC_EPOCH macro, which adds the epoch as attribute to the trace event. Use TRACE_GC_EPOCH for top-level events, nested events can get the information from its parent. V8's GC needs an epoch for young and full collections, since scavenges also occur during incremental marking. The epoch is also process-wide, so different isolates do not reuse the same id. Change-Id: I8889bccce51e008374b4796445a50062bd87a45d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2565247 Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#71521}
-
- 27 Nov, 2020 1 commit
-
-
Dominik Inführ authored
Remove TRACE_BACKGROUND_GC which was used to emit events on the background thread. It is replaced by TRACE_GC1, which uses the ThreadKind argument to work both on main and background threads. This CL also removes the dedicated BackgroundScope enum, all scopes are now in GCTracer::Scope. Change-Id: Ie377082d6a278dd46f2fa359611fdd99a08afcea Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2560203Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#71458}
-
- 26 Nov, 2020 1 commit
-
-
Santiago Aboy Solanes authored
Scopes in V8 are used to guarantee one or more properties during its lifetimes. If a scope is not named e.g MyClassScope(args) instead of MyClassScope scope(args) it will get created and automatically destroyed and therefore, being useless as a scope. This CL would produce a compiling warning when that happens to ward off this developer error. Follow-up to ccrev.com/2552415 in which it was introduced and implemented for Guard classes. Change-Id: Ifa0fb89cc3d9bdcdee0fd8150a2618af5ef45cbf Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2555001 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#71425}
-
- 24 Nov, 2020 2 commits
-
-
Georg Neis authored
Apart from removing Min and Max (utils.h), this is mostly a renaming. In a few cases I had to add a cast. In a bunch of cases I had to use initializer lists to force call-by-value for static member constants because call-by-reference wouldn't compile (like in the previous CL). In a few places I used initializer lists in place of nested min/max operations. Bug: v8:11074 Change-Id: I53a5411be6334ff41e7a8517e6b87fb46f14d086 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2545523 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#71380}
-
Dominik Inführ authored
For pages that are already swept, it can happen that one thread iterates old-to-new-slots while another thread promotes an object onto the same page. Accessing the slot_set in Scavenger::ScavengePage therefore needs to be atomic. Bug: v8:11077 Change-Id: I086db612ed4e861aa9bd1c18fdf5c0e17c519a4b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2555009 Auto-Submit: Dominik Inführ <dinfuehr@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#71360}
-
- 30 Sep, 2020 1 commit
-
-
Etienne Pierre-doray authored
This is a reland of 92f815a8 Safe to reland as-is with task id lifetime fix in https://chromium-review.googlesource.com/c/v8/v8/+/2437005 Original change's description: > Reland "[Heap] ScavengerCollector use Jobs." > > This is a reland of 9e8c54f8 > Safe to reland as-is with fix in AcquireTaskId > https://chromium-review.googlesource.com/c/v8/v8/+/2401964 > > Additional changes are made in the reland: > -TRACE_GC is be split for background/foreground scope. > -New IndexGenerator is used for dynamic work assignement. > > Original change's description: > > [Heap] ScavengerCollector use Jobs. > > > > No yielding is necessary since the main thread Join()s. > > > > max concurrency is determined based on either > > remaining_memory_chunks_ or global pool size > > (copied_list_ + promotion_list_) > > > > Change-Id: Ie30fa86c44d3224b04df5d79569bce126ce7d96b > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2354390 > > Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org> > > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#69746} > > Change-Id: Id9d7a5bf3b2337ae4cf1e76770f4b14ebb8ca256 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2399041 > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org> > Cr-Commit-Position: refs/heads/master@{#70135} Change-Id: Id0451b6eca9a125c7695d251d1a7d813e0664dd3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2432071 Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#70238}
-
- 25 Sep, 2020 2 commits
-
-
Etienne Pierre-Doray authored
This reverts commit 92f815a8. Reason for revert: broke tests; see https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20TSAN/33395? Original change's description: > Reland "[Heap] ScavengerCollector use Jobs." > > This is a reland of 9e8c54f8 > Safe to reland as-is with fix in AcquireTaskId > https://chromium-review.googlesource.com/c/v8/v8/+/2401964 > > Additional changes are made in the reland: > -TRACE_GC is be split for background/foreground scope. > -New IndexGenerator is used for dynamic work assignement. > > Original change's description: > > [Heap] ScavengerCollector use Jobs. > > > > No yielding is necessary since the main thread Join()s. > > > > max concurrency is determined based on either > > remaining_memory_chunks_ or global pool size > > (copied_list_ + promotion_list_) > > > > Change-Id: Ie30fa86c44d3224b04df5d79569bce126ce7d96b > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2354390 > > Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org> > > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#69746} > > Change-Id: Id9d7a5bf3b2337ae4cf1e76770f4b14ebb8ca256 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2399041 > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org> > Cr-Commit-Position: refs/heads/master@{#70135} TBR=ulan@chromium.org,etiennep@chromium.org Change-Id: I4823c642546b82a9a9c8955151cd8784e4b86bc8 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2431551 Commit-Queue: Francis McCabe <fgm@chromium.org> Reviewed-by:
Francis McCabe <fgm@chromium.org> Cr-Commit-Position: refs/heads/master@{#70138}
-
Etienne Pierre-doray authored
This is a reland of 9e8c54f8 Safe to reland as-is with fix in AcquireTaskId https://chromium-review.googlesource.com/c/v8/v8/+/2401964 Additional changes are made in the reland: -TRACE_GC is be split for background/foreground scope. -New IndexGenerator is used for dynamic work assignement. Original change's description: > [Heap] ScavengerCollector use Jobs. > > No yielding is necessary since the main thread Join()s. > > max concurrency is determined based on either > remaining_memory_chunks_ or global pool size > (copied_list_ + promotion_list_) > > Change-Id: Ie30fa86c44d3224b04df5d79569bce126ce7d96b > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2354390 > Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#69746} Change-Id: Id9d7a5bf3b2337ae4cf1e76770f4b14ebb8ca256 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2399041Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org> Cr-Commit-Position: refs/heads/master@{#70135}
-
- 16 Sep, 2020 1 commit
-
-
Ulan Degenbaev authored
With the --always_promote_young_mc flag the mark-compact collector cannot gracefully handle allocation failures when evacuating the young generation. In some scenarios this causes OOM crashes without invoking NearHeapLimitCallback. This CL ensures that the young generation is evacuated before the old generation because old generation evacuation can be aborted if needed. Additionally, the CL cleans up usages of CanExpandOldGeneration. Bug: v8:10843 Change-Id: I50d83912137afa3d3dac797dd4c6bddb51612334 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2404829 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#69937}
-
- 08 Sep, 2020 2 commits
-
-
Shu-yu Guo authored
This reverts commit 9e8c54f8. Reason for revert: Data races (https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20TSAN/33100) Original change's description: > [Heap] ScavengerCollector use Jobs. > > No yielding is necessary since the main thread Join()s. > > max concurrency is determined based on either > remaining_memory_chunks_ or global pool size > (copied_list_ + promotion_list_) > > Change-Id: Ie30fa86c44d3224b04df5d79569bce126ce7d96b > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2354390 > Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#69746} TBR=ulan@chromium.org,etiennep@chromium.org Change-Id: I206397c6086cf18d5e08cf615bdaaf0f34c6d36b No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2398852Reviewed-by:
Shu-yu Guo <syg@chromium.org> Commit-Queue: Shu-yu Guo <syg@chromium.org> Cr-Commit-Position: refs/heads/master@{#69748}
-
Etienne Pierre-doray authored
No yielding is necessary since the main thread Join()s. max concurrency is determined based on either remaining_memory_chunks_ or global pool size (copied_list_ + promotion_list_) Change-Id: Ie30fa86c44d3224b04df5d79569bce126ce7d96b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2354390 Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#69746}
-
- 12 Aug, 2020 1 commit
-
-
Dominik Inführ authored
ArrayBufferTracker was superseded by ArrayBufferList and ArrayBufferSweeper. Now that ArrayBufferSweeper is used in production, we can remove the unused ArrayBufferTracker mechanism. Bug: v8:10064 Change-Id: I479169c76b6c5c634672024f77e689bb64a36504 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2339105Reviewed-by:
Simon Zünd <szuend@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#69351}
-
- 21 Jul, 2020 1 commit
-
-
Michael Lippautz authored
Bug: chromium:1107901 Change-Id: Ieacea3dd60e80143a0cbeebf4ab5f91d3888e1a0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2310351 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Auto-Submit: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#68974}
-
- 16 Jul, 2020 1 commit
-
-
Dominik Inführ authored
Replacing EnsureSweepingCompleted() with DrainSweepingWorklistForSpace() caused sweeping to be completed later. This resulted in longer scavenger pauses, since the scavenger had to stop & resume sweeping more often. To avoid this, the scavenger now completes sweeping when all pages are swept. Bug: chromium:1106295, v8:10315 Change-Id: Ia46efdfb1f2492e9228f0349936be32a467f502b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2301935Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#68900}
-
- 17 Jun, 2020 1 commit
-
-
Dan Elphick authored
Since ReadOnlySpace pages will soon not be MemoryChunks, change most uses of MemoryChunk::FromHeapObject and FromAddress to use the BasicMemoryChunk variants and which use the new MemoryChunk::cast function that takes a BasicMemoryChunk and DCHECKs !InReadOnlySpace(). To enable this, it also moves into BasicMemoryChunk several MemoryChunk functions that just require a BasicMemoryChunk. Bug: v8:10454 Change-Id: I80875b2c2446937ac2c2bc9287d36e71cc050c38 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2243216 Commit-Queue: Dan Elphick <delphick@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#68390}
-
- 03 Jun, 2020 1 commit
-
-
Junliang Yan authored
1) Rename remembered-set-inl.h back to remembered-set.h 2) Introduce a new remembered-set-inl.h and move the function definition that depends on ptr-compr-inl.h. Change-Id: I0e16e1e428937184ff255471937c70e6bb65a11e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2223816 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#68146}
-
- 12 May, 2020 1 commit
-
-
Ulan Degenbaev authored
Change-Id: I3d5d856d86deb283173c7b6f0f302e3c4e4b67fb Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2190755 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#67729}
-
- 11 May, 2020 1 commit
-
-
Ulan Degenbaev authored
This replaces VisitMode with a set of option flags that allow skipping specific roots like unserializable, weak, global handles, etc. The advantage is that it is no longer coupled with the callers and does not know about different types of GCs and their phases. The CL is pure refactoring without behavior changes except for the heap verification where more roots are verified that before. Change-Id: I350b2ed14826e0efb75770111c6b28bb8d4d9845 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2190420Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#67704}
-
- 05 May, 2020 1 commit
-
-
Dan Elphick authored
Also makes memory-chunk.h accessible from outside heap which allows removal of some heap-inl.h includes. Bug: v8:10473, v8:10496 Change-Id: Iec4fc5ce8ad201f6ee5fd924cc3cd935324429fc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2172088 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Auto-Submit: Dan Elphick <delphick@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#67551}
-
- 25 Feb, 2020 1 commit
-
-
Omer Katz authored
This reverts commit 6cfba48b. Reason for revert: Removing dynamic parameter caused regressions for scavenger. Original change's description: > [heap] Align v8 and oilpan worklists > > This CL makes the following changes: > 1) Size of allocated buffer is set by a template parameter > (with a default value instead of hardcoded size) > 2) Remove dynamic parameter for initializing number of > tasks (see comment in scavenger.cc) > > This CL aligns the v8 and oilpan heaps so that they provide > the same interface and functionality. > > Change-Id: I77d63793f0a54ea29198ddd6bd298eae2c15cf42 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2030920 > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Commit-Queue: Omer Katz <omerkatz@chromium.org> > Cr-Commit-Position: refs/heads/master@{#66158} TBR=ulan@chromium.org,mlippautz@chromium.org,omerkatz@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Change-Id: Iab127d59882ded33d0df3897326031bfc2d2aaf2 Bug: chromium:1052750 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2071862 Commit-Queue: Omer Katz <omerkatz@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#66430}
-
- 06 Feb, 2020 1 commit
-
-
Omer Katz authored
This CL makes the following changes: 1) Size of allocated buffer is set by a template parameter (with a default value instead of hardcoded size) 2) Remove dynamic parameter for initializing number of tasks (see comment in scavenger.cc) This CL aligns the v8 and oilpan heaps so that they provide the same interface and functionality. Change-Id: I77d63793f0a54ea29198ddd6bd298eae2c15cf42 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2030920Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/master@{#66158}
-
- 24 Jan, 2020 1 commit
-
-
Dominik Inführ authored
When ArrayBufferExtensions are enabled, sweep the extensions outside of the GC pause concurrently to the application. The following GC will make sure that the previous concurrent sweep operation is finished. This CL introduces Heap::array_buffer_sweeper() that is both responsible for tracking all extensions but also for sweeping. Bug: v8:10064 Change-Id: I113cd625445a7d59ffb7a9de8b25a15a72b02b99 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2010107Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#65984}
-