- 11 Feb, 2021 2 commits
-
-
Clemens Backes authored
This reverts commit b471bc93. Reason for revert: Seems like we don't reliably deliver scriptParsed events on reload after this CL. Original change's description: > [wasm] Send a single scriptParsed event per script > > If a script was shared between multiple modules (because they used the > same wire bytes) it could happen that we still triggered multiple > "scriptParsed" events via CDP. This was because > {WasmEngine::GetOrCreateScript} did not communicate back whether it > used a cached script or whether it created a new one. > > This CL moves the call to {Debug::OnAfterCompile} (which triggers the > "scriptParsed" event) to the {WasmEngine::GetOrCreateScript} method, > such that we only call it once per script. > Since the engine only holds a weak reference to the script, we would > still trigger multiple events if the script is garbage-collected in the > meantime. In this case there is no way around this, as the new script > would have a new ID, hence we need to emit a new event to make it > public to the debugger. > > R=thibaudm@chromium.org > CC=bmeurer@chromium.org > > Bug: chromium:1151211 > Change-Id: I1a7986514fd708680541a0e5dc24e60f01f42c28 > Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_isolates_rel_ng > Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel_ng > Cq-Include-Trybots: luci.v8.try:v8_mac64_gc_stress_dbg_ng > Cq-Include-Trybots: luci.v8.try:v8_linux_gc_stress_dbg_ng > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2687755 > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> > Commit-Queue: Clemens Backes <clemensb@chromium.org> > Cr-Commit-Position: refs/heads/master@{#72648} TBR=clemensb@chromium.org,bmeurer@chromium.org,thibaudm@chromium.org Change-Id: I6cc299734e4fcff29289355973e7660b60b49a25 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:1151211 Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_isolates_rel_ng Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel_ng Cq-Include-Trybots: luci.v8.try:v8_mac64_gc_stress_dbg_ng Cq-Include-Trybots: luci.v8.try:v8_linux_gc_stress_dbg_ng Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2689199Reviewed-by:
Clemens Backes <clemensb@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#72667}
-
Clemens Backes authored
If a script was shared between multiple modules (because they used the same wire bytes) it could happen that we still triggered multiple "scriptParsed" events via CDP. This was because {WasmEngine::GetOrCreateScript} did not communicate back whether it used a cached script or whether it created a new one. This CL moves the call to {Debug::OnAfterCompile} (which triggers the "scriptParsed" event) to the {WasmEngine::GetOrCreateScript} method, such that we only call it once per script. Since the engine only holds a weak reference to the script, we would still trigger multiple events if the script is garbage-collected in the meantime. In this case there is no way around this, as the new script would have a new ID, hence we need to emit a new event to make it public to the debugger. R=thibaudm@chromium.org CC=bmeurer@chromium.org Bug: chromium:1151211 Change-Id: I1a7986514fd708680541a0e5dc24e60f01f42c28 Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_isolates_rel_ng Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel_ng Cq-Include-Trybots: luci.v8.try:v8_mac64_gc_stress_dbg_ng Cq-Include-Trybots: luci.v8.try:v8_linux_gc_stress_dbg_ng Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2687755Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#72648}
-
- 03 Feb, 2021 1 commit
-
-
Thibaud Michaud authored
R=ahaas@chromium.org,ulan@chromium.org Bug: v8:8091 Change-Id: Ia826e18bd06b5e6d401ff43b33b43b4e4c2a69db Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2672022Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#72501}
-
- 27 Jan, 2021 1 commit
-
-
Clemens Backes authored
Instead of updating the detected features set directly, use the synchronized {OnCompilationStopped} method. In order to avoid this error in the future, the whole {detected_features()} getter is removed, as it returns a pointer which can only be accessed when holding the mutex anyway. Also, the refactored code was the only user of this dangerous method. Drive-by: Pass the WasmFeatures set by value, since it's just an EnumSet. Drive-by 2: Remove a print line from the regression test which can be confusing if the test is picked up again by foozzie. R=ahaas@chromium.org CC=zhin@chromium.org Bug: v8:11357 Change-Id: I75b5c8f35983d2bc1fd2b61adcb2ecfc18564f39 Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_isolates_rel_ng Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel_ng Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2653226Reviewed-by:
Zhi An Ng <zhin@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#72375}
-
- 26 Jan, 2021 1 commit
-
-
Clemens Backes authored
Recompilation for tier down should not be triggered if the module had a compile error. This CL ensures that by moving the recompilation a bit later in the async compilation, to a place where a compile error would have been detected already. An added DCHECK would catch similar bugs earlier (crashing instead of timing out). R=ahaas@chromium.org Bug: chromium:1160031 Change-Id: I7eb3d2921db0f28bb39e9ec6150fd98fd4b99089 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2649028 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#72329}
-
- 20 Jan, 2021 2 commits
-
-
Clemens Backes authored
This CL makes {CompilationState::WaitForTopTierFinished} reuse the logic in {CompilationStateImpl::WaitForCompilationEvent}. In order to support that new use case better, the latter is improved by 1. stopping compilation (in that one thread) as soon as the event has been seen, and 2. also executing top-tier units if needed. R=ahaas@chromium.org Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel_ng Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_isolates_rel_ng Change-Id: Ia20f54c195ba8670b10fc6790db28af04e8f40b0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2637862 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#72200}
-
Clemens Backes authored
This was disabled previously because the number of queues could not grow above a predefined limit. Now that this is fixed, we can contribute to compilation again instead of just waiting for recompilation to finish (which might never happen if there are no background threads). R=thibaudm@chromium.org Change-Id: Ia0567bc8872246efb20ae8aaf96f9d689fca1c49 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2637863Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#72196}
-
- 19 Jan, 2021 3 commits
-
-
Clemens Backes authored
The engine can be retrieved from the NativeModule, hence avoid passing it explicitly. R=ahaas@chromium.org Change-Id: I38f9bdb9624006da8311e57c3e53327654b6e85a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2637855Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#72163}
-
Andreas Haas authored
R=clemensb@chromium.org Bug: v8:11319 Change-Id: If24b1ba929bce2e4268a794930c325aaebcfa556 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2637222Reviewed-by:
Clemens Backes <clemensb@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#72150}
-
Andreas Haas authored
For asynchronous compilation, the beginning and end of compilation are marked with different trace events. To allow to connect these events, a compilation id is added to the start and end events. Note that the compilation id is not added to all trace events to avoid bloating traces. Ids may be added later to these events if necessary. R=clemensb@chromium.org Bug: chromium:1084929 Change-Id: I36ad598d27dea355fcca8992534c91e5a880fdaa Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2629274 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#72144}
-
- 12 Jan, 2021 1 commit
-
-
Clemens Backes authored
bulk-memory shipped in V8 v7.5, hence the feature flag can be removed now. This saves some binary size and a few dynamic checks for the flag. R=ahaas@chromium.org Bug: v8:11074 Change-Id: Ia73622637939f2192940fdd6909520786ed27286 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2622913Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#72045}
-
- 07 Jan, 2021 3 commits
-
-
Andreas Haas authored
When --single-threaded is set, and therefore --wasm-num-compilation-tasks=0, the compilation job for JSToWasm wrapper compilation is executed directly instead of first posted and then joined on the main thread. R=clemensb@chromium.org Bug: v8:11279 Change-Id: Idba150cf9d32a6a6b12b322f46c0ba36fd220c5b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2595441 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#71953}
-
Andreas Haas authored
R=thibaudm@chromium.org Bug: v8:11074 Change-Id: I1dbe03794b1365c965ec48731ed4bd233e42bbb7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2595440Reviewed-by:
Clemens Backes <clemensb@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#71946}
-
Andreas Haas authored
Due to the transition to the jobs API, WebAssembly compilation was using background threads, even when --single-threaded and therefore --wasm-num-compilation-tasks=0 was used. With this CL, the compilation job is started with a maximum concurrency of 0 when --wasm-num-compilation-tasks=0. To ensure compilation progress in asynchronous compilation, the main thread waits for baseline compilation to finish right after initializing all compilation units, and thereby participates in the compilation. R=clemensb@chromium.org Bug: v8:11279 Change-Id: I85f93f82c00cdbd6afd46110599089a052101a00 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2599546Reviewed-by:
Clemens Backes <clemensb@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#71944}
-
- 15 Dec, 2020 1 commit
-
-
Clemens Backes authored
Since the compile job can always be reused after creation (even if it runs out of work), we do not need the logic to (re-)initialize it. In fact, it will always only be initialized once already. This allows us to initialize it once during construction of the compilation state (or right after the initialization), and then access it without locks later. In addition, this CL 1) renames "current_compile_job_" to "compile_job_", since there will always only be one now; 2) removes the {ScheduleCompileJobForNewUnits} method, and just does a {compile_job_->NotifyConcurrencyIncrease()} instead; 3) removes the {has_priority_} field and just directly does a {compile_job_->UpdatePriority} call. The streaming test platform needed to be fixed to avoid calling {Join} on the job handle, which would invalidate the handle afterwards. Instead, we just run all tasks as long as there are any. R=thibaudm@chromium.org CC=etiennep@chromium.org Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel_ng Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_isolates_rel_ng Change-Id: I7094231e86d5f54cfca5e971b96fd81e994c874a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2584946 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#71757}
-
- 10 Dec, 2020 2 commits
-
-
Clemens Backes authored
The NativeModule should not die before the WasmEngine, since state owned by the engine will still be accessed in the destructor of the NativeModule. This CL ensures that by moving the OperationsBarrier from the CompilationStateImpl to the NativeModule. R=thibaudm@chromium.org, etiennep@chromium.org Bug: v8:11250, v8:11243 Change-Id: Ic4d69222e9e6076578c35986b0051817dbd8dbef Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel_ng Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_isolates_rel_ng Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2581959 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#71696}
-
Clemens Backes authored
So far we reported the script ID, but DevTools ignores that and uses the source url instead. That url was just set to "wasm ", which the frontend couldn't make any sense of. This CL fixes this by passing the source URL to the code create event, and also setting the position of the code inside the script (i.e. wasm module). R=thibaudm@chromium.org, petermarshall@chromium.org Bug: chromium:1125986 Change-Id: Ic41dcd2768c60fd6748468d3a89fc4ffccb35932 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2581543 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#71695}
-
- 08 Dec, 2020 4 commits
-
-
Clemens Backes authored
This is a reland of ab4d9717. The original CL did a std::move before the final use of the NativeModule. PS2 removes that. TBR=petermarshall@chromium.org, thibaudm@chromium.org Original change's description: > [wasm] Pass the script ID to code logging > > We didn't pass a script ID with the code creation events for profiling. > This made DevTools lose the connection to the wasm script, hence > jumping from the profiler entry to the source did not work. > > This CL changes the timing of code logging a bit such that the script is > always allocated before logging. In the queue of code to be logged we > then also store the script ID, and finally set it on the {CodeEntry} > object. > > R=thibaudm@chromium.org > > Bug: chromium:1125986 > Change-Id: I2248c1d520bc819436bbe732373f7a3446b64f48 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2575057 > Commit-Queue: Clemens Backes <clemensb@chromium.org> > Reviewed-by: Peter Marshall <petermarshall@chromium.org> > Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> > Cr-Commit-Position: refs/heads/master@{#71654} Bug: chromium:1125986 Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng Change-Id: I2a7c5fe04fff726836b1279e3d05b1702a4efb76 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2578980Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#71663}
-
Etienne Pierre-doray authored
This is a reland of 064ee3c8 Issue 1: WasmEngine UAF when CompilationState is destroyed asynchronously Fix: Include https://chromium-review.googlesource.com/c/v8/v8/+/2565508 in this CL. Use OperationBarrier to keep WasmEngine alive. Issue 2: In gin, JobTask lifetime is not extended beyond JobHandle, thus making CancelAndDetach unusable. This is fixed in chromium here: https://chromium-review.googlesource.com/c/chromium/src/+/2566724 Original change's description: > Reland "[wasm]: Use CancelAndDetach and barrier on BackgroundCompileJob." > > Reason for revert: Data race: > https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20TSAN/34121 > > It was assume that MockPlatform runs everything on 1 thread. However, > MockPlatform::PostJob previously would schedule the job through > TestPlatform, which eventually posts concurrent tasks, thus causing > data race. > Fix: Manually calling NewDefaultJobHandle and passing the MockPlatform > ensures the jobs also run sequentially. > > Additional change: > - CancelAndDetach is now called in ~CompilationStateImpl() to make sure > it's called in sequence with ScheduleCompileJobForNewUnits > > Original CL description: > To avoid keeping around a list of job handles, CancelAndDetach() is > used in CancelCompilation. Dependency on WasmEngine is handled by a > barrier that waits on all jobs to finish. > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2498659 > Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Cr-Original-Commit-Position: refs/heads/master@{#71074} > Change-Id: Ie9556f7f96f6fb9a61ada0e5cbd58d4fb4a0f571 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2559137 > Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org> > Reviewed-by: Andreas Haas <ahaas@chromium.org> > Cr-Commit-Position: refs/heads/master@{#71459} TBR=ulan@chromium.org Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel_ng Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_isolates_rel_ng Change-Id: I6175092c97fea0d5f63a97af232e2d54cccea535 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2569360 Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#71662}
-
Clemens Backes authored
This reverts commit ab4d9717. Reason for revert: UBSan issues: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20UBSan/14184/overview Original change's description: > [wasm] Pass the script ID to code logging > > We didn't pass a script ID with the code creation events for profiling. > This made DevTools lose the connection to the wasm script, hence > jumping from the profiler entry to the source did not work. > > This CL changes the timing of code logging a bit such that the script is > always allocated before logging. In the queue of code to be logged we > then also store the script ID, and finally set it on the {CodeEntry} > object. > > R=thibaudm@chromium.org > > Bug: chromium:1125986 > Change-Id: I2248c1d520bc819436bbe732373f7a3446b64f48 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2575057 > Commit-Queue: Clemens Backes <clemensb@chromium.org> > Reviewed-by: Peter Marshall <petermarshall@chromium.org> > Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> > Cr-Commit-Position: refs/heads/master@{#71654} TBR=petermarshall@chromium.org,clemensb@chromium.org,thibaudm@chromium.org Change-Id: I03c90c77b55e770797a6d66b1d778992a047e07a No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:1125986 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2575070Reviewed-by:
Clemens Backes <clemensb@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#71660}
-
Clemens Backes authored
We didn't pass a script ID with the code creation events for profiling. This made DevTools lose the connection to the wasm script, hence jumping from the profiler entry to the source did not work. This CL changes the timing of code logging a bit such that the script is always allocated before logging. In the queue of code to be logged we then also store the script ID, and finally set it on the {CodeEntry} object. R=thibaudm@chromium.org Bug: chromium:1125986 Change-Id: I2248c1d520bc819436bbe732373f7a3446b64f48 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2575057 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#71654}
-
- 02 Dec, 2020 2 commits
-
-
Clemens Backes authored
From reading the code it was totally unclear what the purpose of the "offset" parameter at ProcessCodeSectionHeader and CheckFunctionsCount is. Actually, it's just there for setting an error position. Thus this CL renames the field, and a related local variable to make the use more clear. Drive-by: Remove a confusing and unnecessary Decoder::Reset call. R=ahaas@chromium.org Change-Id: Iccde5ccb3b9e7e52976c47724157c184fd345ec4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2567709Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#71563}
-
Clemens Backes authored
This reverts commit 83d289b8. Reason for revert: lock order inversion, see https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20TSAN%20-%20isolates/12584/overview Original change's description: > Reland [wasm] Reduce job priority once baseline compilation finishes > > ReduceCompilationPriority takes a lock now. > > Original message: > This Cl changes the priority of baseline compilation from kUserVisible > to kUserBlocking. Once baseline compilation finishes, the priority is > reduced to kUserVisible. The reason for using kUserBlocking is that > thereby TurboFan compilation cannot block Liftoff compilation anymore. > Additionally, kUserBlocking is quite appropriate, as the initial > compilation does block a whole section of a web app from execution. > > R=clemensb@chromium.org > > Bug: v8:11088 > Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel_ng > Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_isolates_rel_ng > Change-Id: I6e1bcc809148198a4b4f88bfd4f2e62b1b061439 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2563675 > Commit-Queue: Andreas Haas <ahaas@chromium.org> > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Cr-Commit-Position: refs/heads/master@{#71546} TBR=ahaas@chromium.org,clemensb@chromium.org Change-Id: I62e4e3d0663dbd181b14f77f0c1586d5e503f324 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:11088 Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel_ng Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_isolates_rel_ng Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2567953Reviewed-by:
Clemens Backes <clemensb@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#71557}
-
- 01 Dec, 2020 2 commits
-
-
Andreas Haas authored
ReduceCompilationPriority takes a lock now. Original message: This Cl changes the priority of baseline compilation from kUserVisible to kUserBlocking. Once baseline compilation finishes, the priority is reduced to kUserVisible. The reason for using kUserBlocking is that thereby TurboFan compilation cannot block Liftoff compilation anymore. Additionally, kUserBlocking is quite appropriate, as the initial compilation does block a whole section of a web app from execution. R=clemensb@chromium.org Bug: v8:11088 Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel_ng Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_isolates_rel_ng Change-Id: I6e1bcc809148198a4b4f88bfd4f2e62b1b061439 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2563675 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#71546}
-
Etienne Pierre-Doray authored
This reverts commit 064ee3c8. Reason for revert: Causing blink_web_tests to fail on builder "WebKit Linux MSAN" https://bugs.chromium.org/p/chromium/issues/detail?id=1153968 Original change's description: > Reland "[wasm]: Use CancelAndDetach and barrier on BackgroundCompileJob." > > Reason for revert: Data race: > https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20TSAN/34121 > > It was assume that MockPlatform runs everything on 1 thread. However, > MockPlatform::PostJob previously would schedule the job through > TestPlatform, which eventually posts concurrent tasks, thus causing > data race. > Fix: Manually calling NewDefaultJobHandle and passing the MockPlatform > ensures the jobs also run sequentially. > > Additional change: > - CancelAndDetach is now called in ~CompilationStateImpl() to make sure > it's called in sequence with ScheduleCompileJobForNewUnits > > Original CL description: > To avoid keeping around a list of job handles, CancelAndDetach() is > used in CancelCompilation. Dependency on WasmEngine is handled by a > barrier that waits on all jobs to finish. > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2498659 > Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Cr-Original-Commit-Position: refs/heads/master@{#71074} > Change-Id: Ie9556f7f96f6fb9a61ada0e5cbd58d4fb4a0f571 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2559137 > Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org> > Reviewed-by: Andreas Haas <ahaas@chromium.org> > Cr-Commit-Position: refs/heads/master@{#71459} TBR=ulan@chromium.org,jkummerow@chromium.org,ahaas@chromium.org,clemensb@chromium.org,etiennep@chromium.org Bug: chromium:1153968, v8:11209, v8:11210, v8:11212 # Not skipping CQ checks because original CL landed > 1 day ago. Change-Id: I2c8406bea81ee7cf6c5726c2fec50fffdce09611 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2566446Reviewed-by:
Clemens Backes <clemensb@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#71519}
-
- 30 Nov, 2020 1 commit
-
-
Clemens Backes authored
The streaming decoder computed the code section start from the passed "offset". That offset is computed from the module offset *after* the number of functions has been read. Hence 1 is subtracted, with the comment: // The offset passed to {ProcessCodeSectionHeader} is an error offset and // not the start offset of a buffer. Therefore we need the -1 here. That subtraction of 1 worked when the number of functions was encoded in a 1-byte LEB, otherwise it was off. This CL fixes the immediate issue of passing the right code offset. The usage of the previously existing offset also seems wrong, and I will try to clean that up in a follow-up CL. R=ahaas@chromium.org CC=szuend@chromium.org Bug: chromium:1150303 Change-Id: I64bb2ececeb4749b7ba2096cd148ccb4079eca4f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2562383 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#71503}
-
- 27 Nov, 2020 1 commit
-
-
Etienne Pierre-doray authored
Reason for revert: Data race: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20TSAN/34121 It was assume that MockPlatform runs everything on 1 thread. However, MockPlatform::PostJob previously would schedule the job through TestPlatform, which eventually posts concurrent tasks, thus causing data race. Fix: Manually calling NewDefaultJobHandle and passing the MockPlatform ensures the jobs also run sequentially. Additional change: - CancelAndDetach is now called in ~CompilationStateImpl() to make sure it's called in sequence with ScheduleCompileJobForNewUnits Original CL description: To avoid keeping around a list of job handles, CancelAndDetach() is used in CancelCompilation. Dependency on WasmEngine is handled by a barrier that waits on all jobs to finish. Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2498659 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#71074} Change-Id: Ie9556f7f96f6fb9a61ada0e5cbd58d4fb4a0f571 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2559137 Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#71459}
-
- 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}
-
- 25 Nov, 2020 2 commits
-
-
Leszek Swirski authored
This reverts commit cf9a28b6. Reason for revert: TSAN failures: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20TSAN/34374? Original change's description: > [wasm] Reduce job priority once baseline compilation finishes > > This Cl changes the priority of baseline compilation from kUserVisible > to kUserBlocking. Once baseline compilation finishes, the priority is > reduced to kUserVisible. The reason for using kUserBlocking is that > thereby TurboFan compilation cannot block Liftoff compilation anymore. > Additionally, kUserBlocking is quite appropriate, as the initial > compilation does block a whole section of a web app from execution. > > R=clemensb@chromium.org > > Bug: v8:11088 > Change-Id: Ifde42d20f36d4c0a5122b0008311ccdffbb60e48 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2519559 > Commit-Queue: Andreas Haas <ahaas@chromium.org> > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Cr-Commit-Position: refs/heads/master@{#71404} TBR=ahaas@chromium.org,clemensb@chromium.org Change-Id: I9a975c4c43189015491b08d3a98de991d8167daf No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:11088 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2560200Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#71409}
-
Andreas Haas authored
This Cl changes the priority of baseline compilation from kUserVisible to kUserBlocking. Once baseline compilation finishes, the priority is reduced to kUserVisible. The reason for using kUserBlocking is that thereby TurboFan compilation cannot block Liftoff compilation anymore. Additionally, kUserBlocking is quite appropriate, as the initial compilation does block a whole section of a web app from execution. R=clemensb@chromium.org Bug: v8:11088 Change-Id: Ifde42d20f36d4c0a5122b0008311ccdffbb60e48 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2519559 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#71404}
-
- 24 Nov, 2020 1 commit
-
-
Sara Tang authored
Removed wall_clock_time_in_us field. Bug: v8:11109 Change-Id: Ib3efa74fc741b793ef064c1d12ca1797be3a10c1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2550280Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Sara Tang <sartang@microsoft.com> Cr-Commit-Position: refs/heads/master@{#71386}
-
- 20 Nov, 2020 2 commits
-
-
Leszek Swirski authored
Because of LocalHeap safepoints, our existing assert scopes don't necessarily maintain the same guarantees as desired. In particular, DisallowHeapAllocation no longer guarantees that objects don't move. This patch transitions DisallowHeapAllocation to DisallowGarbageCollection, to ensure that code using this scope is also protected against safepoints. Change-Id: I0411425884f6849982611205fb17bb072881c722 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2540547 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#71319}
-
Andreas Haas authored
CalculateGlobalOffsets has to be called once after all globals got defined but before global offsets get accessed, e.g. during code generation. It is not clear though when exactly CalculateGlobalOffsets should be called. The globals section may not exist, so at the end of the globals section is not enough (globals can also be defined in the import section). At the beginning of the code section is also not good enough, because the code section may not exist. At the end of the module may be too late. With this CL, CalculateGlobalOffsets is called after the global section, before the code section, and at the end of the module. Additionally the CL checks if CalculateGlobalOffsets has already been called, so that it is not executed a second time. R=manoskouk@chromium.org Bug: v8:11185 Change-Id: I922b9f60a4a17a09d2527fd9ab35cda71226030c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2551100 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/master@{#71314}
-
- 11 Nov, 2020 2 commits
-
-
Clemens Backes authored
After https://crrev.com/c/2529140, the actual data race should already be fixed. This CL updates documentation (by moving the field to the fields protected by {mutex_}), and updates {SetHighPriority} to also take the mutex. This change is not strictly necessary, because this method is only called right after creating the object, so no other threads have access to it yet. But relying on that seems brittle, and moving the initialization to the constructor is a bigger refactoring that I don't consider worth it at the moment. The whole priority management will probably be refactored again soon anyway. R=ahaas@chromium.org Bug: v8:11141 Change-Id: I496b619d551aeb584bd6e777c04ed4df076c3ae9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2529143Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#71113}
-
Clemens Backes authored
The message on the DCHECK says that no compilation should have started when adding js-to-wasm units, but the check itself then also allows for situations where the job was created but is already done. This is unnecessarily permissive. This CL fixes the DCHECK to check what the comment says. R=ahaas@chromium.org Change-Id: I6de8af33869fd11ae91ce2009c360b8d4ed54e9e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2529142Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#71111}
-
- 10 Nov, 2020 3 commits
-
-
Clemens Backes authored
A new compile job can be scheduled from any thread, and {current_compile_job_} is documented to be protected by {mutex_}. Hence take the mutex before writing that field. R=thibaudm@chromium.org, ahaas@chromium.org Bug: v8:11089 Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel_ng Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_isolates_rel_ng Change-Id: I2d3b2c51a7d24c7e827bb7ddc9c76b718c2ccb4c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2529140Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#71089}
-
Clemens Backes authored
This reverts commit a74f9eb6. Reason for revert: Data race: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20TSAN/34121 Original change's description: > [wasm]: Use CancelAndDetach and barrier on BackgroundCompileJob. > > To avoid keeping around a list of job handles, CancelAndDetach() is > used in CancelCompilation. Dependency on WasmEngine is handled by a > barrier that waits on all jobs to finish. > > > Change-Id: I685a1737354b2fb3d1f4b98580926a93da38be5b > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2498659 > Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Cr-Commit-Position: refs/heads/master@{#71074} TBR=ulan@chromium.org,jkummerow@chromium.org,clemensb@chromium.org,etiennep@chromium.org Change-Id: I9288abd03b572059ac5278d2e5b84bd418b4d69d No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2529132Reviewed-by:
Clemens Backes <clemensb@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#71078}
-
Etienne Pierre-doray authored
To avoid keeping around a list of job handles, CancelAndDetach() is used in CancelCompilation. Dependency on WasmEngine is handled by a barrier that waits on all jobs to finish. Change-Id: I685a1737354b2fb3d1f4b98580926a93da38be5b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2498659 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#71074}
-
- 09 Nov, 2020 1 commit
-
-
Sara Tang authored
As part of an effort to prepare the Recorder interface for general use, we had to make some changes to the way the existing Wasm Events are being used. In particular, - it is more fitting to use a ElapsedTimer than a TimedScope to measure the durations in src/wasm/module-[decoder|instantiate].cc - we want to rename the wall_clock_time_in_us field to duration_in_us for clarity. Because these Wasm events are already being instantiated in chromium, renaming the field requires a two-step change. This is the first of those changes. Change-Id: If1b2990f7645616a59fc21d07ac10bf00701c0e5 Bug: v8:11109 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2518619Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Emanuel Ziegler <ecmziegler@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#71053}
-
- 06 Nov, 2020 1 commit
-
-
Clemens Backes authored
This seems to be the convention in other trace events. R=ahaas@chromium.org Bug: v8:11074 Change-Id: Icf7be6ba3d52cac8c77dec787f294a3edee44d20 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2521590 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#71017}
-