- 17 May, 2019 1 commit
-
-
Clemens Hammacher authored
We currently have the problem that we trigger too many code GCs since {new_potentially_dead_code_size_} is never reset to zero. This CL adds a counter which tells us how many GCs we ran per native module. This counter is sampled on each code GC. It will give us a good understanding of the amount of GC work we are executing in the wild. The number should stay in the single-digits generally. R=mstarzinger@chromium.org, mpearson@chromium.org Bug: v8:8217 Change-Id: I978a98dff76e0f466ff51e067626886b58d52ded Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1615246Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#61611}
-
- 07 May, 2019 2 commits
-
-
Clemens Hammacher authored
In the {WasmEngine::RemoveIsolate} method, we might remove the last outstanding isolate for the current GC. In that case, finish the GC at that point. R=mstarzinger@chromium.org Bug: v8:8217 Change-Id: I7d710756d29265e0552fcc318435133f7db03dda Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1598706Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#61298}
-
Clemens Hammacher authored
Beside scheduling a foreground task per isolate, do also request a stack guard interrupt to report live code objects. This ensures that also workers which never return from wasm code will report their live wasm code objects. R=mstarzinger@chromium.org Bug: v8:8217 Change-Id: I07ba9e5125263365596331197813494d8ad5ee89 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1596739Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#61277}
-
- 03 May, 2019 2 commits
-
-
Clemens Hammacher authored
Between determining the set of wasm code objects to free, and actually freeing them, we should not give up the mutex of the wasm engine. Otherwise, a NativeModule can die in-between, and we would access a stale pointer. This fixes some flakes seen on the TSan bots with --stress-wasm-code-gc. R=mstarzinger@chromium.org Bug: v8:8217, v8:9200 Change-Id: Iad5b47379b5be6269180094cfeb2a2f2dfefb425 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1593340Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#61204}
-
Frederik Gossen authored
Fix function name in error messages thrown by the streaming API. The API functions {WebAssembly.compileStreaming} and {WebAssembly.instantiateStreaming} are now mentioned where needed. Bug: v8:9184 Change-Id: I70b27efe1c027d119fa7b5b9be27988a92304682 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1588468Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Frederik Gossen <frgossen@google.com> Cr-Commit-Position: refs/heads/master@{#61202}
-
- 29 Apr, 2019 1 commit
-
-
Clemens Hammacher authored
One fundamental assumption of the wasm code GC is that code becomes "potentially dead" at most once; if the ref counts drops to zero later, it should be freed for real. In the current implementation, it happens that code becomes potentially dead, then becomes dead for real (it's removed from the set of potentially dead code), and then we remove the last reference. At that point, we re-add the code to the potentially dead code, considering it for garbage collection again. This can lead to an endless loop. This CL fixes that by remembering which code was already detected as dead, and does not consider this code for another GC. This requires freeing code via the {WasmEngine} such that the set of dead code can be cleaned up. R=mstarzinger@chromium.org Bug: v8:8217 Change-Id: If6a95a7918db2ad82edfad5447c536593243db7d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1585845Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#61073}
-
- 16 Apr, 2019 1 commit
-
-
Clemens Hammacher authored
This moves the vector of {WasmCode} to log (per isolate) from the {LogCodesTask} to the {WasmEngine}, where lifetime is more clear. This makes it harder to mess up the ref count of the stored {WasmCode} objects. R=mstarzinger@chromium.org Bug: v8:8217 Change-Id: I07131f95391bfabee3c376378179d8bcdc1555b0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1566518 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#60869}
-
- 09 Apr, 2019 2 commits
-
-
Clemens Hammacher authored
This adds the {CurrentGCInfo} data structure to the wasm engine. It holds all information needed for the current GC cycle, which is currently only the set of Isolates that still need to report their live code, and the set of dead wasm code (which is potentially reduced when Isolates report live code). Running the GC is guarded by the new '--wasm-code-gc' flag. I will add this to the --future variant in a follow-up CL. R=mstarzinger@chromium.org Bug: v8:8217 Change-Id: I82e96d986cf5a758bc0f94e49e13ad78fae4e935 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1559738 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#60721}
-
Clemens Hammacher authored
This adds data structures to track potentially dead code in the wasm engine. The engine will then trigger an engine-wide GC once the potentially dead code reaches a certain threshold. R=mstarzinger@chromium.org Bug: v8:8217 Change-Id: I13216a66bb8e8e1594b165a65708e53057e9e535 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1559736 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#60718}
-
- 13 Mar, 2019 1 commit
-
-
Clemens Hammacher authored
We need to ensure that the NativeModule stays alive while any {BackgroundCompileScope} exists, because during that time we hold shared ownership of the mutex in the {BackgroundCompileToken}. If the {NativeModule} dies during that period, we would need to get exclusive ownership of the mutex and deadlock. This change requires holding a {std::weak_ptr<NativeModule>} in the BackgroundCompileToken instead of a raw pointer, hence it can only be initialized after the NativeModule was created. This is done via a separate {InitCompilationState} method. R=ahaas@chromium.org Bug: v8:8979 Change-Id: Ia14bd272ea0bc47aec547024da6020608418c9d2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1518178 Auto-Submit: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#60203}
-
- 11 Mar, 2019 1 commit
-
-
Clemens Hammacher authored
In order to get a more complete picture about the code sizes of compiled wasm modules, sample the code size of each module after top-tier compilation finished. This happens via the {WasmEngine} because that's where we know which isolates use a given {NativeModule} and can schedule foreground tasks to sample the code size. R=mstarzinger@chromium.org Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel Bug: v8:8217 Change-Id: Id585db8a9ab8f3aa1060b08411afaa31c5414f87 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1508404 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#60167}
-
- 06 Feb, 2019 1 commit
-
-
Clemens Hammacher authored
Creating the LogCodesTask and adding the code objects to it adds 10-20% to Liftoff compilation time. Thus cache whether code logging is needed per isolate, and avoid the overhead if that flag is false. R=mstarzinger@chromium.org Bug: v8:8783, chromium:928722 Change-Id: I059266da3309a4b1ed316016d0a55fa34f139057 Reviewed-on: https://chromium-review.googlesource.com/c/1454484 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#59400}
-
- 01 Feb, 2019 1 commit
-
-
Clemens Hammacher authored
This is a reland of ac2fb66b. Crashes were fixed in https://crrev.com/c/1429862. Original change's description: > [wasm] Remove finisher task > > This removes the finisher task and instead finishes compilation units > from the background. > It also changes ownership of the AsyncCompileJob to be shared among all > tasks that still operate on it. The AsyncCompileJob dies when the last > reference dies. > > R=ahaas@chromium.org > CC=mstarzinger@chromium.org > > Bug: v8:7921, v8:8423 > Change-Id: Id09378327dfc146459ef41bc97176a8716756ae4 > Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel > Reviewed-on: https://chromium-review.googlesource.com/c/1335553 > Reviewed-by: Andreas Haas <ahaas@chromium.org> > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Cr-Commit-Position: refs/heads/master@{#58630} Bug: v8:7921, v8:8423 Change-Id: I3dcee4e8e56d2a524d302af91b5cb4a7a9ceb8ce Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel Reviewed-on: https://chromium-review.googlesource.com/c/1400781 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#59302}
-
- 25 Jan, 2019 2 commits
-
-
Clemens Hammacher authored
The compilation state should have no notion of Isolates. Move code logging and management of the corresponding foreground task to the WasmEngine. R=mstarzinger@chromium.org Bug: v8:8689 Change-Id: Ib690317139d0754731b9f0e71d06e7a722082eed Reviewed-on: https://chromium-review.googlesource.com/c/1434035 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#59093}
-
Clemens Hammacher authored
The WasmCodeManager held a list of all Isolates that use the WasmEngine/WasmCodeManager (those two are 1:1). Since we want to move all isolate-specific tasks (like code logging and compilation callbacks) to the WasmEngine, this CL moves this management from the WasmCodeManager to the WasmEngine. We now have a bidirectional mapping from NativeModules to the Isolates that use them, and from an Isolate to all the NativeModules it uses (n:n). The IsolateData struct will be extended in follow-up CLs to hold things like the ForegroundTaskRunner. The Isolate* in the NativeModule / CompilationState will eventually be removed. R=mstarzinger@chromium.org Bug: v8:8689 Change-Id: Ic2c003c3949f73ce3264dd9dac96884a5c0b9896 Reviewed-on: https://chromium-review.googlesource.com/c/1433793 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#59092}
-
- 23 Jan, 2019 3 commits
-
-
Clemens Hammacher authored
This is a reland of 92d9b09c. Patch unchanged, errors fixed by https://crrev.com/c/1430059. Original change's description: > [wasm] Decouple background compile jobs from NativeModule > > Background compile jobs should not keep the NativeModule alive, for two > reasons: > 1) We sometimes have to wait for background compilation to finish (from > a foreground task!). This introduces unnecessary latency. > 2) Giving the background compile tasks shared ownership of the > NativeModule causes the NativeModule (and the CompilationState) to > be freed from background tasks, which is error-prone (see > https://crrev.com/c/1400420). > > Instead, this CL introduces a BackgroundCompileToken which is held > alive by the NativeModule and all background compile jobs. The initial > and the final phase of compilation (getting and submitting work) > synchronize on this token to check and ensure that the NativeModule is > and stays alive. During compilation itself, the mutex is released, such > that the NativeModule can die. > The destructor of the NativeModule cancels the BackgroundCompileToken. > Immediately afterwards, the NativeModule and the CompilationState can > die. > > This change allows to remove two hacks introduced previously: The atomic > {aborted_} flag and the {FreeCallbacksTask}. > > R=mstarzinger@chromium.org > CC=titzer@chromium.org > > Bug: v8:8689, v8:7921 > Change-Id: I42e06eab3c944b0988286f2ce18e3c294535dfb6 > Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel > Reviewed-on: https://chromium-review.googlesource.com/c/1421364 > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Cr-Commit-Position: refs/heads/master@{#59020} TBR=mstarzinger@chromium.org Bug: v8:8689, v8:7921 Change-Id: Iead972ef77c8503da7246cab48e7693b176d8f02 Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel Reviewed-on: https://chromium-review.googlesource.com/c/1429862Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#59035}
-
Clemens Hammacher authored
This reverts commit 92d9b09c. Reason for revert: Crashes on several bots, e.g. https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux64%20UBSan/4237 Original change's description: > [wasm] Decouple background compile jobs from NativeModule > > Background compile jobs should not keep the NativeModule alive, for two > reasons: > 1) We sometimes have to wait for background compilation to finish (from > a foreground task!). This introduces unnecessary latency. > 2) Giving the background compile tasks shared ownership of the > NativeModule causes the NativeModule (and the CompilationState) to > be freed from background tasks, which is error-prone (see > https://crrev.com/c/1400420). > > Instead, this CL introduces a BackgroundCompileToken which is held > alive by the NativeModule and all background compile jobs. The initial > and the final phase of compilation (getting and submitting work) > synchronize on this token to check and ensure that the NativeModule is > and stays alive. During compilation itself, the mutex is released, such > that the NativeModule can die. > The destructor of the NativeModule cancels the BackgroundCompileToken. > Immediately afterwards, the NativeModule and the CompilationState can > die. > > This change allows to remove two hacks introduced previously: The atomic > {aborted_} flag and the {FreeCallbacksTask}. > > R=mstarzinger@chromium.org > CC=titzer@chromium.org > > Bug: v8:8689, v8:7921 > Change-Id: I42e06eab3c944b0988286f2ce18e3c294535dfb6 > Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel > Reviewed-on: https://chromium-review.googlesource.com/c/1421364 > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Cr-Commit-Position: refs/heads/master@{#59020} TBR=mstarzinger@chromium.org,clemensh@chromium.org Change-Id: I724f460f5aa654a9e75d3ce73d351214e69e2d96 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:8689, v8:7921 Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel Reviewed-on: https://chromium-review.googlesource.com/c/1429861Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#59022}
-
Clemens Hammacher authored
Background compile jobs should not keep the NativeModule alive, for two reasons: 1) We sometimes have to wait for background compilation to finish (from a foreground task!). This introduces unnecessary latency. 2) Giving the background compile tasks shared ownership of the NativeModule causes the NativeModule (and the CompilationState) to be freed from background tasks, which is error-prone (see https://crrev.com/c/1400420). Instead, this CL introduces a BackgroundCompileToken which is held alive by the NativeModule and all background compile jobs. The initial and the final phase of compilation (getting and submitting work) synchronize on this token to check and ensure that the NativeModule is and stays alive. During compilation itself, the mutex is released, such that the NativeModule can die. The destructor of the NativeModule cancels the BackgroundCompileToken. Immediately afterwards, the NativeModule and the CompilationState can die. This change allows to remove two hacks introduced previously: The atomic {aborted_} flag and the {FreeCallbacksTask}. R=mstarzinger@chromium.org CC=titzer@chromium.org Bug: v8:8689, v8:7921 Change-Id: I42e06eab3c944b0988286f2ce18e3c294535dfb6 Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel Reviewed-on: https://chromium-review.googlesource.com/c/1421364 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#59020}
-
- 08 Jan, 2019 2 commits
-
-
Michael Achenbach authored
This reverts commit ac2fb66b. Reason for revert: Flakily crashes on several bots: https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Win32/18524 https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Win64%20-%20msvc/6824 https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux64%20-%20internal%20snapshot/19766 Original change's description: > [wasm] Remove finisher task > > This removes the finisher task and instead finishes compilation units > from the background. > It also changes ownership of the AsyncCompileJob to be shared among all > tasks that still operate on it. The AsyncCompileJob dies when the last > reference dies. > > R=ahaas@chromium.org > CC=mstarzinger@chromium.org > > Bug: v8:7921, v8:8423 > Change-Id: Id09378327dfc146459ef41bc97176a8716756ae4 > Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel > Reviewed-on: https://chromium-review.googlesource.com/c/1335553 > Reviewed-by: Andreas Haas <ahaas@chromium.org> > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Cr-Commit-Position: refs/heads/master@{#58630} TBR=ahaas@chromium.org,clemensh@chromium.org Change-Id: I6b332b66adaec8f713fb31f4c8517cae7ebb4645 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7921, v8:8423 Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel Reviewed-on: https://chromium-review.googlesource.com/c/1400420Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#58634}
-
Clemens Hammacher authored
This removes the finisher task and instead finishes compilation units from the background. It also changes ownership of the AsyncCompileJob to be shared among all tasks that still operate on it. The AsyncCompileJob dies when the last reference dies. R=ahaas@chromium.org CC=mstarzinger@chromium.org Bug: v8:7921, v8:8423 Change-Id: Id09378327dfc146459ef41bc97176a8716756ae4 Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel Reviewed-on: https://chromium-review.googlesource.com/c/1335553Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#58630}
-
- 26 Dec, 2018 1 commit
-
-
Jakob Kummerow authored
Tbr: ahaas@chromium.org,leszeks@chromium.org,verwaest@chromium.org Bug: v8:3770 Change-Id: Ia6530fbb70dac05e9972283781c3550d8b50e1eb Reviewed-on: https://chromium-review.googlesource.com/c/1390116 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Alexei Filippov <alph@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#58470}
-
- 12 Dec, 2018 1 commit
-
-
Clemens Hammacher authored
Compilation failures are already stored in the {CompilationState}. We never use the information which individual compilation unit failed. Hence remove that getter, and only check for failure of the overall compilation. R=ahaas@chromium.org Bug: v8:7921, v8:8343 Change-Id: Ibf90be233c9ff576ec8a3413ba5abefe2fdb645e Reviewed-on: https://chromium-review.googlesource.com/c/1373783Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#58195}
-
- 21 Nov, 2018 1 commit
-
-
Ross McIlroy authored
Moves allocation of the WasmModuleObject for asm.js code out of SyncCompileTranslatedAsmJS since that is called when we are compiling the native context independent SharedFunctionInfo and the WasmModuleObject requires a native context. Instead save the members required to create the object in the AsmWasmData and create it during module instantiation. Note: since the Wasm module is an implementation detail for asm_wasm code and isn't exposed, this doeesn't have semantic change for asm.js code. As part of this change, the AsmWasmData is changed from a FixedArray to a dedicated struct. Some logic is also moved from module-compiler to wasm-engine to make the seperation between Wasm SyncCompile and AsmJS SyncCompile more clear. BUG=chromium:900535,v8:8395 Change-Id: Ia48469c095b0688f210aa86e7430c9ab4ea4b26b Reviewed-on: https://chromium-review.googlesource.com/c/1345509 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#57704}
-
- 30 Oct, 2018 1 commit
-
-
Clemens Hammacher authored
This is a reland of bf3d7b9a Original change's description: > [wasm] Store compile errors in CompilationState > > We are currently storing compilation errors in the individual > compilation units and pass it to the ErrorThrower during finishing. > This CL changes that to store errors on the CompilationState directly. > From there, it is propagated to the ErrorThrower in the compilation > state callback. > This removes more work from the finisher task and slims down the > WasmCompilationUnits. > > R=mstarzinger@chromium.org > > Bug: v8:8343, v8:7921 > Change-Id: Id332add43d4219d2a30fee653ed4e53a9b2698d9 > Reviewed-on: https://chromium-review.googlesource.com/c/1303720 > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Cr-Commit-Position: refs/heads/master@{#57091} Bug: v8:8343, v8:7921 Change-Id: Iaa5c89d224cb2bcfca2d12eba305413a9ad95618 Reviewed-on: https://chromium-review.googlesource.com/c/1304547 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#57126}
-
- 29 Oct, 2018 2 commits
-
-
Maya Lekova authored
This reverts commit bf3d7b9a. Reason for revert: Breaks TSAN build, see https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux64%20TSAN/23248 Original change's description: > [wasm] Store compile errors in CompilationState > > We are currently storing compilation errors in the individual > compilation units and pass it to the ErrorThrower during finishing. > This CL changes that to store errors on the CompilationState directly. > From there, it is propagated to the ErrorThrower in the compilation > state callback. > This removes more work from the finisher task and slims down the > WasmCompilationUnits. > > R=mstarzinger@chromium.org > > Bug: v8:8343, v8:7921 > Change-Id: Id332add43d4219d2a30fee653ed4e53a9b2698d9 > Reviewed-on: https://chromium-review.googlesource.com/c/1303720 > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Cr-Commit-Position: refs/heads/master@{#57091} TBR=mstarzinger@chromium.org,clemensh@chromium.org Change-Id: Id32c7337494a4749485adbcfcaae7b2331afea66 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:8343, v8:7921 Reviewed-on: https://chromium-review.googlesource.com/c/1304544Reviewed-by: Maya Lekova <mslekova@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#57094}
-
Clemens Hammacher authored
We are currently storing compilation errors in the individual compilation units and pass it to the ErrorThrower during finishing. This CL changes that to store errors on the CompilationState directly. From there, it is propagated to the ErrorThrower in the compilation state callback. This removes more work from the finisher task and slims down the WasmCompilationUnits. R=mstarzinger@chromium.org Bug: v8:8343, v8:7921 Change-Id: Id332add43d4219d2a30fee653ed4e53a9b2698d9 Reviewed-on: https://chromium-review.googlesource.com/c/1303720Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#57091}
-
- 23 Oct, 2018 1 commit
-
-
Clemens Hammacher authored
This is to prepare larger refactorings that reduce the amount of information stored in the WasmCompilationUnits and avoid ever storing the ModuleEnv. Instead, we will generate it when needed. This will allow us to correctly switch from a trap-handler configuration to non-trap-handler. R=mstarzinger@chromium.org Bug: v8:8343, v8:5277 Change-Id: I383a8105448ccdcae1148ddfebd74db70c648ecf Reviewed-on: https://chromium-review.googlesource.com/c/1293951Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#56893}
-
- 25 Sep, 2018 1 commit
-
-
Clemens Hammacher authored
First step towards GC of wasm code: Introduce a link to all Isolates that use a WasmEngine. R=mstarzinger@chromium.org Bug: v8:8217 Change-Id: Ib7f4495e7c7e5cc9ad58293518c65738f23d664c Reviewed-on: https://chromium-review.googlesource.com/1240335 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#56204}
-
- 18 Sep, 2018 1 commit
-
-
Clemens Hammacher authored
The WasmMemoryTracker keeps track of reserved memory in order to avoid running out of virtual address space. So far, we were only tracking reservations for wasm memory, and not for code. This CL changes that to also include code reservations. Drive-by: Some cleanup around the allocation of the WasmCodeManager. R=titzer@chromium.org Bug: chromium:883639 Change-Id: I0c2586a742022ae00752132e048346d54e2a1a7c Reviewed-on: https://chromium-review.googlesource.com/1230134Reviewed-by: Ben Titzer <titzer@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#56001}
-
- 13 Sep, 2018 1 commit
-
-
Florian Sattler authored
Fixing clang-tidy warning. Bug: v8:8015 Change-Id: Ib3b6bdeb404ed6fe9c69107b4683a99c96dd8352 Reviewed-on: https://chromium-review.googlesource.com/1224053Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Florian Sattler <sattlerf@google.com> Cr-Commit-Position: refs/heads/master@{#55866}
-
- 07 Sep, 2018 2 commits
-
-
Florian Sattler authored
Bug: v8:8015 Change-Id: If6017a85683efcc847dab8034fdd82ac51106317 Reviewed-on: https://chromium-review.googlesource.com/1213182Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Florian Sattler <sattlerf@google.com> Cr-Commit-Position: refs/heads/master@{#55721}
-
Florian Sattler authored
Bug: v8:8015 Change-Id: I4e4892f49de69b8c6c3347de024708997825cb44 Reviewed-on: https://chromium-review.googlesource.com/1209848Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Florian Sattler <sattlerf@google.com> Cr-Commit-Position: refs/heads/master@{#55704}
-
- 21 Aug, 2018 1 commit
-
-
Ben L. Titzer authored
R=mstarzinger@chromium.org Change-Id: Iacdff28dd1383d77d7708de4ee22d9f2a77d872a Reviewed-on: https://chromium-review.googlesource.com/1183440 Commit-Queue: Ben Titzer <titzer@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#55284}
-
- 17 Aug, 2018 1 commit
-
-
Michael Starzinger authored
This makes sure that a tier-up from Ignition to TurboFan (or any other code publishing) preserves redirections to the Interpreter. Currently an interpreted function never switches back to compiled. R=titzer@chromium.org TEST=mjsunit/wasm/interpreter-mixed BUG=v8:7921,v8:8018 Change-Id: Ifca479953509708c998c11cc00b481c232678e00 Reviewed-on: https://chromium-review.googlesource.com/1179661 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#55195}
-
- 14 Aug, 2018 1 commit
-
-
Andreas Haas authored
The problem was that in AsyncCompileJob::FinishModule we allocate a handle, but when this function is called from streaming compilation, then there was no HandleScope around AsyncCompileJob::FinishModule. This issue was fixed in another CL, https://crrev.com/c/1172357. This CL is just a rebase of the original CL. Original change's description: > [wasm] Implement the new API for WebAssembly.instantiateStreaming > This is the second V8 CL to refactor WebAssembly.instantiateStreaming to > make it spec compliant again. The design doc where the whole change is > discussed is available in the tracking bug. The tracking bug also > references prototype implementations of the whole change, which includes > the changes in this CL. R=starzinger@chromium.org Bug: chromium:860637 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: Ib0cb25488654d2b325b4f529d33b76b846c64436 Reviewed-on: https://chromium-review.googlesource.com/1172429Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#55106}
-
- 13 Aug, 2018 1 commit
-
-
Clemens Hammacher authored
After https://crrev.com/c/1172285, abortion and deletion of an {AsyncCompileJob} is the same. Hence, remove the {AbortCompileJobsOnIsolate} method and replace all uses by {DeleteCompileJobsOnIsolate}. R=ahaas@chromium.org CC=mstarzinger@chromium.org Bug: chromium:869420 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I053dc47395a257066bbca55069d53445dc28eeb9 Reviewed-on: https://chromium-review.googlesource.com/1172288Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#55092}
-
- 09 Aug, 2018 1 commit
-
-
Ben L. Titzer authored
This CL introduces a set of configuration options implemented as a struct of booleans that together comprise the set of enabled or detected features. The configuration options replace command-line flags that were checked deep in the implementation. As such, it is necessary to plumb them through multiple levels of abstraction. R=ahaas@chromium.org CC=mstarzinger@chromium.org BUG=chromium:868844 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I1b82f5826e4fd263f68e8cafcd923bac5818a637 Reviewed-on: https://chromium-review.googlesource.com/1163670Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#55018}
-
- 02 Aug, 2018 1 commit
-
-
Andreas Haas authored
This reverts commit b556c9ea. Reason for revert: Flakes in layout tests: https://crbug.com/870187 Original change's description: > [wasm] Implement the new API for WebAssembly.instantiateStreaming > > This is the second V8 CL to refactor WebAssembly.instantiateStreaming to > make it spec compliant again. The design doc where the whole change is > discussed is available in the tracking bug. The tracking bug also > references prototype implementations of the whole change, which includes > the changes in this CL. > > R=mstarzinger@chromium.org > > Bug: chromium:860637 > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng > Change-Id: I776c0f24959ab5663727d3dfee0248a9b0642a42 > Reviewed-on: https://chromium-review.googlesource.com/1143187 > Commit-Queue: Andreas Haas <ahaas@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Cr-Commit-Position: refs/heads/master@{#54834} TBR=mstarzinger@chromium.org,ahaas@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: chromium:860637 Change-Id: Icbf2603143068a49c61de162aa7185a753703e5d Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Reviewed-on: https://chromium-review.googlesource.com/1160261Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#54872}
-
- 01 Aug, 2018 2 commits
-
-
Michael Starzinger authored
This changes the predicate in question to only check for async compile jobs belonging to a given Isolate, having an engine-wide predicate is not desirable for draining message queues. R=clemensh@chromium.org BUG=v8:7424 Change-Id: If990378400cc4484d413c4d7771ec6deb6bfd244 Reviewed-on: https://chromium-review.googlesource.com/1158565 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#54844}
-
Clemens Hammacher authored
All compile tasks are already canceled when the {CompilationState} dies. This happens when the {NativeModule} dies, and all {NativeModule}s die before the {WasmEngine} dies. Thus, the WasmEngine does not need to cancel any compile jobs, because there are none anyway. R=mstarzinger@chromium.org Bug: chromium:869420 Change-Id: I7e006392a1f9126333733c81c4c19985f626a470 Reviewed-on: https://chromium-review.googlesource.com/1158411Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#54840}
-