- 16 May, 2019 2 commits
-
-
Clemens Hammacher authored
We already use {base::AddressRegion} in some places, while other places still receive {Address} and {size_t}. Those are often created from an existing {base::AddressRegion}, hence pass that on explicitly. Drive-by: Rename {AssignRanges} to {AssignRange}. Drive-by^2: Return {base::AddressRegion} by value (it is trivially copyable and small). R=mstarzinger@chromium.org Bug: v8:9183 Change-Id: Ia9f26cc96e084922f5e27d879209ee4c79c63fee Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1613242 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#61578}
-
Clemens Hammacher authored
When decommitting memory, update the committed code space counters both for the native module as well as engine-wide (via {WasmCodeManager}). R=mstarzinger@chromium.org Bug: v8:8217 Change-Id: I9679b27f2465de2cbc797529d83f90cdac903d01 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1613239 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#61569}
-
- 13 May, 2019 1 commit
-
-
Clemens Hammacher authored
This factors out a {WasmCodeAllocator} which manages all code reservations and allocations for a {NativeModule}. This will allow for better testing of this component (which will be added in a separate CL). R=titzer@chromium.org Change-Id: I09727c30afc533e95569276147792d0e641b0507 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1605738 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#61445}
-
- 09 May, 2019 1 commit
-
-
Paolo Severini authored
The original CL title was updated to reflect CL contents. The --win64-unwinding-info flag still exists but it is set by default. This is a reland of efd8c2d9 Original change's description: > Remove --win64-unwinding-info flag and always generate unwind info on Win/x64 > > The generation of unwind info to enable stack walking on Windows/x64 > (https://chromium-review.googlesource.com/c/v8/v8/+/1469329) was implemented > behind a temporary flag, in order to coordinate these changes with the > corresponding changes in Chromium. > > The required changes to Chromium > (https://chromium-review.googlesource.com/c/chromium/src/+/1474703) have also > been merged, so we can now remove the flag and enable the generation of stack > unwinding info by default on Windows/x64. > > Bug: v8:3598 > Change-Id: I88814aaeabecc007f5262227aa0681a1d16156d5 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1573138 > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Commit-Queue: Paolo Severini <paolosev@microsoft.com> > Cr-Commit-Position: refs/heads/master@{#61020} Bug: v8:3598, chromium:958035 Change-Id: Ie53b39f3bb31567797a61e5110685284c266c1f9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1599596 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#61368}
-
- 08 May, 2019 2 commits
-
-
Jakob Kummerow authored
For faster calls from Wasm to C-API functions, passing parameter values directly instead of through JavaScript wrapper objects. Change-Id: I31e7d1622dedaf3154483306ab159427ac167663 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1591601Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#61338}
-
Michael Starzinger authored
R=clemensh@chromium.org Change-Id: I4ef23446609e0b276877aedaccbd738497f2853f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1601145Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#61327}
-
- 07 May, 2019 1 commit
-
-
Jakob Gruber authored
This reverts commit efd8c2d9. Reason for revert: Performance regressions (chromium:958035) Original change's description: > Remove --win64-unwinding-info flag and always generate unwind info on Win/x64 > > The generation of unwind info to enable stack walking on Windows/x64 > (https://chromium-review.googlesource.com/c/v8/v8/+/1469329) was implemented > behind a temporary flag, in order to coordinate these changes with the > corresponding changes in Chromium. > > The required changes to Chromium > (https://chromium-review.googlesource.com/c/chromium/src/+/1474703) have also > been merged, so we can now remove the flag and enable the generation of stack > unwinding info by default on Windows/x64. > > Bug: v8:3598 > Change-Id: I88814aaeabecc007f5262227aa0681a1d16156d5 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1573138 > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Commit-Queue: Paolo Severini <paolosev@microsoft.com> > Cr-Commit-Position: refs/heads/master@{#61020} TBR=ulan@chromium.org,mstarzinger@chromium.org,jgruber@chromium.org,paolosev@microsoft.com # Not skipping CQ checks because original CL landed > 1 day ago. Tbr: ulan@chromium.org,mstarzinger@chromium.org,paolosev@microsoft.com Bug: v8:3598, chromium:958035 Change-Id: Ia86a230ee83080ed8ace43e4641c8c1013043df4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1598748 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#61259}
-
- 06 May, 2019 2 commits
-
-
Clemens Hammacher authored
To reduce physical memory consumption, discard code pages that are fully freed. To determine pages which only become fully free after several freed wasm code objects, this CL adds a {DisjointAllocationPool} to track all freed code ({freed_code_space_} in {NativeModule}). R=mstarzinger@chromium.org Bug: v8:8217 Change-Id: I22ad92d2c0bd4469e92f0dfd5aec05c03b5a47d6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1594728 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#61244}
-
Clemens Hammacher authored
It was a std::list for no obvious reason. This CL turns it into a vector, which is the standard data structure we use if we don't have any special requirements. R=mstarzinger@chromium.org Change-Id: Iefc321db9327e0743772dd804e2325266a9bff64 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1594727Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#61235}
-
- 03 May, 2019 3 commits
-
-
Clemens Hammacher authored
This is a reland of b6fb2707. Unchanged reland, TSan issue were fixed in https://crrev.com/c/1593340 and https://crrev.com/c/1594553. Original change's description: > [wasm][gc] Free WasmCode objects > > This adds the next step to freeing code: We free the actual C++ > {WasmCode} objects. This will cause UAF if any C++ code uses stale > references. > The underlying machine code will still not be freed. > > For simplicity, this CL changes the vector of owned_code to an ordered > set, such that lookup and removal is much simpler. The drawback is that > insertion is now more expensive. > > R=mstarzinger@chromium.org > > Bug: v8:8217 > Change-Id: I07fc81167816637fbaad6c06ff79e3f952f2fde8 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1593080 > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Cr-Commit-Position: refs/heads/master@{#61165} TBR=mstarzinger@chromium.org Bug: v8:8217 Change-Id: I809832bb609663d794c7aafcf071823db7fb6212 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1594436 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#61215}
-
Clemens Hammacher authored
TSan reports errors if one thread changes the ref count using relaxed semantics, then another thread frees the code object. Acquire-release semantics fix this, as they impose an ordering between the memory accesses of different threads. R=mstarzinger@chromium.org Bug: v8:8217, v8:9200 Change-Id: I30ce150154e6459c2c64e16be603f29187af1dcd Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1594553 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#61205}
-
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}
-
- 02 May, 2019 3 commits
-
-
Clemens Hammacher authored
This reverts commit b6fb2707. Reason for revert: TSan issues, e.g. https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20TSAN/26177 Original change's description: > [wasm][gc] Free WasmCode objects > > This adds the next step to freeing code: We free the actual C++ > {WasmCode} objects. This will cause UAF if any C++ code uses stale > references. > The underlying machine code will still not be freed. > > For simplicity, this CL changes the vector of owned_code to an ordered > set, such that lookup and removal is much simpler. The drawback is that > insertion is now more expensive. > > R=mstarzinger@chromium.org > > Bug: v8:8217 > Change-Id: I07fc81167816637fbaad6c06ff79e3f952f2fde8 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1593080 > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Cr-Commit-Position: refs/heads/master@{#61165} TBR=mstarzinger@chromium.org,clemensh@chromium.org Change-Id: I167a8d806a8c6ac1c90e0743cdf86d492389bbed No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:8217, v8:9200 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1593305Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#61176}
-
Clemens Hammacher authored
This adds the next step to freeing code: We free the actual C++ {WasmCode} objects. This will cause UAF if any C++ code uses stale references. The underlying machine code will still not be freed. For simplicity, this CL changes the vector of owned_code to an ordered set, such that lookup and removal is much simpler. The drawback is that insertion is now more expensive. R=mstarzinger@chromium.org Bug: v8:8217 Change-Id: I07fc81167816637fbaad6c06ff79e3f952f2fde8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1593080 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#61165}
-
Clemens Hammacher authored
The index is an {int} initially. We then store it as {intptr_t}, and the accessor returns it as {size_t}. This CL consolidates everything to {int}, fixes naming of {HasTrapHandlerIndex} and defines the simple accessors inline. R=titzer@chromium.org Bug: v8:9183 Change-Id: I1afa792117201d4dda3fcc437a4e518489b9ff17 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1590079Reviewed-by:
Ben Titzer <titzer@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#61146}
-
- 30 Apr, 2019 2 commits
-
-
Frederik Gossen authored
Remove unused function {UseLazyStubs}. Lazy compile stubs are now set on a per function basis. This made the function {UseLazyStubs} redundant. Change-Id: I8e715d6a9774c39841219c04c42364fc2e964569 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1588473 Commit-Queue: Frederik Gossen <frgossen@google.com> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#61124}
-
Frederik Gossen authored
Fix recognition of lazy functions when {--wasm-lazy-compilation} is used. Bug: chromium:956771 Change-Id: I3f9bb25ccf3920a6c3d266876faace8841dcdc61 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1585843Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Frederik Gossen <frgossen@google.com> Cr-Commit-Position: refs/heads/master@{#61114}
-
- 29 Apr, 2019 3 commits
-
-
Clemens Hammacher authored
Our {Vector} template provides both {start} and {begin} methods. They return exactly the same value. Since the {begin} method is needed for iteration, and is also what standard containers provide, this CL switches all uses of the {start} method to use {begin} instead. Patchset 1 was auto-generated by using this clang AST matcher: callExpr( callee( cxxMethodDecl( hasName("start"), ofClass(hasName("v8::internal::Vector"))) ), argumentCountIs(0)) Patchset 2 was created by running clang-format. Patchset 3 then removes the now unused {Vector::start} method. R=jkummerow@chromium.org TBR=mstarzinger@chromium.org,yangguo@chromium.org,verwaest@chromium.org Bug: v8:9183 Change-Id: Id9f01c92870872556e2bb3f6d5667463b0e3e5c6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1587381Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#61081}
-
Michael Starzinger authored
R=clemensh@chromium.org Change-Id: I76f9f5dd8c4faef3e33dde96c7bb7f81448d8e79 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1585848Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#61074}
-
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}
-
- 25 Apr, 2019 1 commit
-
-
Paolo Severini authored
The generation of unwind info to enable stack walking on Windows/x64 (https://chromium-review.googlesource.com/c/v8/v8/+/1469329) was implemented behind a temporary flag, in order to coordinate these changes with the corresponding changes in Chromium. The required changes to Chromium (https://chromium-review.googlesource.com/c/chromium/src/+/1474703) have also been merged, so we can now remove the flag and enable the generation of stack unwinding info by default on Windows/x64. Bug: v8:3598 Change-Id: I88814aaeabecc007f5262227aa0681a1d16156d5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1573138Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Paolo Severini <paolosev@microsoft.com> Cr-Commit-Position: refs/heads/master@{#61020}
-
- 23 Apr, 2019 2 commits
-
-
Clemens Hammacher authored
This CL fixes some issues with GC. 1) It removes dead code from the set of potentially dead code to avoid considering the same code for GC again and again. 2) It resets the {new_potentially_dead_code_size_} counter to avoid triggering too many GCs. 3) When code becomes dead after GC, do not unconditionally free it; just decrement its ref count (there might still be {WasmCodeRefScope}s holding the code alive). 4) Update the comment of the ref count to be more accurate. R=titzer@chromium.org Bug: v8:8217 Change-Id: I28e5a1fed74411b8473bb66ddbad3ffe7643f266 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1574518 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#60949}
-
Clemens Hammacher authored
This adds two counters for collecting the absolute size of freed code, and the percent of total generated code per module. R=titzer@chromium.org Bug: v8:8217 Change-Id: Ia065081104fbff6459791c919e0b18677ba45cc3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1573698 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#60948}
-
- 18 Apr, 2019 1 commit
-
-
Michael Starzinger authored
R=jgruber@chromium.org BUG=v8:8758 Change-Id: Iba62ca0f9010cd68b47966ad8d04c1a4149efe70 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1571415Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#60918}
-
- 17 Apr, 2019 1 commit
-
-
Clemens Hammacher authored
The trap handler fallback is flaky, and was never enabled since it never worked reliably. This CL removes a) the --wasm-trap-handler-fallback flag, b) the distinction between soft and hard address space limit, c) methods to check whether memory has guard regions (it will always have them on 64 bit architectures), d) associated runtime functions, e) the trap handler fallback tests, f) recompilation logic for the fallback. R=titzer@chromium.org Bug: v8:8746 Change-Id: I7f4682b8cd5470906dd8579ff1fdc9b1a3c0f0e7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1570023Reviewed-by:
Ben Titzer <titzer@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#60904}
-
- 15 Apr, 2019 1 commit
-
-
Clemens Hammacher authored
Since {NativeModule::GetCode} returns a raw pointer to {WasmCode}, it needs to increment the reference counter on that code object. {HasCode} on the other hand does not return a code pointer, so it's implemented separately now. R=mstarzinger@chromium.org Bug: v8:8217 Change-Id: I812981aaf89281fb0296682114f248079e57a5e3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1566514Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#60843}
-
- 11 Apr, 2019 1 commit
-
-
Clemens Hammacher authored
The {code_table_} in {NativeModule} is protected by the {allocation_mutex_}. The {code} and {code_table} accessors did not acquire this lock though. This CL removes the unsafe {code_table} accessor, renames {code} to {GetCode} and protects it by a lock. R=mstarzinger@chromium.org Bug: v8:9112 Change-Id: Id2df68460b4c10291a49b4016b9574e02744e8b9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1561315Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#60779}
-
- 10 Apr, 2019 1 commit
-
-
Michael Starzinger authored
R=sigurds@chromium.org BUG=v8:9089 Change-Id: I6092ff322588e42e83251464b8a4c61ad0324384 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1559860 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#60743}
-
- 09 Apr, 2019 3 commits
-
-
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}
-
Clemens Hammacher authored
The {remaining_uncommitted_code_space} method is only used for testing. This CL removes it, and replaces all uses by {committed_code_space}. R=mstarzinger@chromium.org Bug: v8:8217 Change-Id: Icb50471da3564a5cd114b15836c8b346b932a108 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1559735 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#60704}
-
Clemens Hammacher authored
We currently store the {remaining_uncommitted_code_space_}. This CL switches this to store {total_committed_code_space_} plus the maximum allowed (in {max_committed_code_space_}). This counter will be used by the GC to decide when to trigger a GC. R=mstarzinger@chromium.org Bug: v8:8217 Change-Id: I5946bbd3ba18e9fcbca4631afb942cd5b82834f5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1558084Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#60702}
-
- 05 Apr, 2019 1 commit
-
-
Frederik Gossen authored
Locks for compilation state callbacks and for the native module are again taken one after the other. As a consequence, publishing compiled Wasm code again happens in parallel. Compile times are now comparable to before lazy hints were enabled. Bug: chromium:949050 Change-Id: I45c52254d046de080938bd131fd3ed8116660bef Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1552787 Commit-Queue: Frederik Gossen <frgossen@google.com> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#60646}
-
- 03 Apr, 2019 2 commits
-
-
Frederik Gossen authored
Merged WasmCode::Tier into Execution Tier. Bug: v8:9003 Change-Id: I0ad439b8bc060f73e71d60ab9c93dd6bc18d05fe Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1547852 Commit-Queue: Frederik Gossen <frgossen@google.com> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#60610}
-
Clemens Hammacher authored
The cache also needs to keep the code alive. The code objects are import wrappers and not wasm functions (which we will focus on first), but eventually we would also like to collect unused import wrappers. This CL explicitly increments the ref count when {WasmCode} is added to the cache, and derements all ref counts in the destructor. R=titzer@chromium.org Bug: v8:8217 Change-Id: I1bfb276b25b359d83900147e75ec47788e1fa8de Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1535825Reviewed-by:
Ben Titzer <titzer@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#60588}
-
- 02 Apr, 2019 1 commit
-
-
Frederik Gossen authored
This is a reland of 09fa63a9 Original change's description: > [wasm-hints] Enabled Lazy Compilation by Hint > > Hints for lazy compilation are now taken into consideration. If the > custom hints section suggests lazy compilatin we do so unless the module > consists of a single function. > > Bug: v8:9003 > Change-Id: Ibdc400453cee20d4d5c814733887b38fb675b220 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1535827 > Commit-Queue: Frederik Gossen <frgossen@google.com> > Reviewed-by: Clemens Hammacher <clemensh@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Cr-Commit-Position: refs/heads/master@{#60557} Bug: v8:9003 No-Try: true Change-Id: I8d6f4518aa548c815fba4e6e62d2206129336cc6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1547851 Commit-Queue: Frederik Gossen <frgossen@google.com> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#60564}
-
- 01 Apr, 2019 2 commits
-
-
Frederik Gossen authored
This reverts commit 09fa63a9. Reason for revert: Falkes on https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20-%20shared/29942 Original change's description: > [wasm-hints] Enabled Lazy Compilation by Hint > > Hints for lazy compilation are now taken into consideration. If the > custom hints section suggests lazy compilatin we do so unless the module > consists of a single function. > > Bug: v8:9003 > Change-Id: Ibdc400453cee20d4d5c814733887b38fb675b220 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1535827 > Commit-Queue: Frederik Gossen <frgossen@google.com> > Reviewed-by: Clemens Hammacher <clemensh@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Cr-Commit-Position: refs/heads/master@{#60557} TBR=mstarzinger@chromium.org,clemensh@chromium.org,frgossen@google.com Change-Id: I18dd424fe8cf05f220f7498bb1ebe4b9fce7d240 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:9003 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1547668Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#60558}
-
Frederik Gossen authored
Hints for lazy compilation are now taken into consideration. If the custom hints section suggests lazy compilatin we do so unless the module consists of a single function. Bug: v8:9003 Change-Id: Ibdc400453cee20d4d5c814733887b38fb675b220 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1535827 Commit-Queue: Frederik Gossen <frgossen@google.com> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#60557}
-
- 25 Mar, 2019 2 commits
-
-
Clemens Hammacher authored
{FrameArray} needs a way to keep {WasmCode} alive from a JS container. This CL instruces {GlobalWasmCodeRef}, which is the equivalent to a global handle: It increments the {WasmCode} reference counter on construction and decrements it on destruction. The {GlobalWasmCodeRef} is held in a {Managed} from JS. R=titzer@chromium.org Bug: v8:8217 Change-Id: I5604a666840c27078db63c8618412ca412525be1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1533862 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#60441}
-
Clemens Hammacher authored
This adds support to ref-count uses of WasmCode, and introduces a {WasmCodeRefScope} to be used whereever WasmCode objects need to be kept alive, e.g. because a pointer is passed around. Future CLs will introduce proper scopes in the whole code base and enable the DCHECK that's currently commented out. R=titzer@chromium.org Bug: v8:8217 Change-Id: I1659a0e9d57cd22fe70e6f2661d0d8af9f0906c7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1526005 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#60438}
-
- 20 Mar, 2019 1 commit
-
-
Clemens Hammacher authored
In order to reduce lock contention in the NativeModule, to publish compiled code in batches. This is implemented via a new {NativeModule::AddCompiledCode} variant that takes a {Vector<WasmCompilationResult>}, allocates code space for all of the results, copies all code over and relocates it, and then publishes all of it. R=titzer@chromium.org Bug: v8:8916 Change-Id: I437bd222dc2471b89b114cdb42049991af36f1f4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1532062 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#60373}
-