commit | 0d64ceb69b3bc999dcc66162042bb2fe29677d28 | [log] [tgz] |
---|---|---|
author | Dominik Inführ <dinfuehr@chromium.org> | Fri Nov 17 12:54:27 2023 |
committer | V8 LUCI CQ <v8-scoped@luci-project-accounts.iam.gserviceaccount.com> | Fri Nov 17 12:55:11 2023 |
tree | fc83a17fd48522d6176c6e99c0faea755ee44ab4 | |
parent | ab20a78dabcfd4143e9dd709d812a85b35f4b068 [diff] |
Revert "[heap] Merge StartIncrementalMarkingIfLimitIsReached for all threads" This reverts commit d05fed47b7154915a52dbaddf3d76a5f4dc82347. Reason for revert: Discovered non-trivial race in https://logs.chromium.org/logs/v8/buildbucket/cr-buildbucket/8764183817836406497/+/u/Num_Fuzz_-_delay/box2d Original change's description: > [heap] Merge StartIncrementalMarkingIfLimitIsReached for all threads > > Merge this method for main and background threads. The method now > gets the LocalHeap as an argument to decide whether it currently > runs on a main or background thread. > > As soon as the hard limit is reached, incremental marking starts > right away on the main thread. However marking can not be started > on a background thread, so on such threads marking is lazily > started on the main thread both through a stack guard and posting a > task. > > Note that this changes behavior in ConcurrentAllocator. So far this > Allocator always used the background thread version of this method. > And in that version marking was never started right away even on the > main thread. > > This means that we now need to change order and invoke this method > before the allocation like we already do on the main thread in order > for black allocation to work. It also means that incremental marking > could start in situations where we didn't expect it so far (see changes > in tests for this). > > Bug: chromium:1480975 > Change-Id: I02460e07fc159a443e5e2ba00e48e988707cdcbb > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5030192 > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Cr-Commit-Position: refs/heads/main@{#90994} Bug: chromium:1480975 Change-Id: Iba59d168679113f1fa67691ea26ac7c732324595 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5040951 Auto-Submit: Dominik Inführ <dinfuehr@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/main@{#91025}
V8 is Google's open source JavaScript engine.
V8 implements ECMAScript as specified in ECMA-262.
V8 is written in C++ and is used in Google Chrome, the open source browser from Google.
V8 can run standalone, or can be embedded into any C++ application.
V8 Project page: https://v8.dev/docs
Checkout depot tools, and run
fetch v8
This will checkout V8 into the directory v8
and fetch all of its dependencies. To stay up to date, run
git pull origin gclient sync
For fetching all branches, add the following into your remote configuration in .git/config
:
fetch = +refs/branch-heads/*:refs/remotes/branch-heads/* fetch = +refs/tags/*:refs/tags/*
Please follow the instructions mentioned at v8.dev/docs/contribute.