- 30 Oct, 2018 1 commit
-
-
Clemens Hammacher authored
For memory limit checks, we should use the minimum of the --wasm-max-mem-pages flag and kV8MaxWasmMemoryPages. The former is a limit set by the user, the latter is the maximum we can handle internally. R=titzer@chromium.org Bug: chromium:898677 Change-Id: I3c549f4e90dd016b5d07475d9353f30134f76dcc Reviewed-on: https://chromium-review.googlesource.com/c/1305274 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#57127}
-
- 12 Oct, 2018 1 commit
-
-
Clemens Hammacher authored
LockGuard is mostly used with Mutex. Since both are defined outside the internal namespace, we often have to write {base::LockGuard<base::Mutex>}. This CL shortens this to {base::MutexGuard} across the code base R=mlippautz@chromium.org Bug: v8:8238 Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;master.tryserver.blink:linux_trusty_blink_rel Change-Id: I020d5933b73aafb98c4b72e3bb2dfd07c979ba73 Reviewed-on: https://chromium-review.googlesource.com/c/1278796Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#56612}
-
- 20 Sep, 2018 1 commit
-
-
Clemens Hammacher authored
The n5x bot fails to *allocate* more memory just before we reach the soft limit of 512 GiB for *reserved* memory. Thus reduce it a bit. This still leaves enough room for ~38 wasm memories with full guard regions. R=ahaas@chromium.org Bug: v8:8196 Change-Id: I6049e2baa3fc8b99c9269f8cb7c013a6e77ebf9b Reviewed-on: https://chromium-review.googlesource.com/1235924Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#56084}
-
- 19 Sep, 2018 3 commits
-
-
Clemens Hammacher authored
This is a reland of 3bb5cb63 Original change's description: > [wasm] Introduce a soft limit on reserved memory > > Currently, wasm memory and wasm code use a shared limit for the total > size of reservations. This can cause wasm code reservations to fail > because wasm memories used all available reservation space. > This CL introduces a soft limit which is used when allocating wasm > memory with full guards. If this limit is reached and the respective > flag is set, we fall back to allocation without full guards and check > against the hard limit. Code reservations always check against the hard > limit. > > R=ahaas@chromium.org > > Bug: v8:8196 > Change-Id: I3fcbaeaa6f72c972d408d291af5d6b788d43151d > Reviewed-on: https://chromium-review.googlesource.com/1233614 > Reviewed-by: Andreas Haas <ahaas@chromium.org> > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Cr-Commit-Position: refs/heads/master@{#56028} Bug: v8:8196 Change-Id: If8baf429b02e23b344346f7335bc911b99ae5579 Reviewed-on: https://chromium-review.googlesource.com/1233756Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#56044}
-
Leszek Swirski authored
This reverts commit 3bb5cb63. Reason for revert: Breaks Win64 bot https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Win64/26418 Original change's description: > [wasm] Introduce a soft limit on reserved memory > > Currently, wasm memory and wasm code use a shared limit for the total > size of reservations. This can cause wasm code reservations to fail > because wasm memories used all available reservation space. > This CL introduces a soft limit which is used when allocating wasm > memory with full guards. If this limit is reached and the respective > flag is set, we fall back to allocation without full guards and check > against the hard limit. Code reservations always check against the hard > limit. > > R=ahaas@chromium.org > > Bug: v8:8196 > Change-Id: I3fcbaeaa6f72c972d408d291af5d6b788d43151d > Reviewed-on: https://chromium-review.googlesource.com/1233614 > Reviewed-by: Andreas Haas <ahaas@chromium.org> > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Cr-Commit-Position: refs/heads/master@{#56028} TBR=ahaas@chromium.org,clemensh@chromium.org Change-Id: If645e738b4a5800eceabd993738ac2285f4a63bc No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:8196 Reviewed-on: https://chromium-review.googlesource.com/1233834Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#56031}
-
Clemens Hammacher authored
Currently, wasm memory and wasm code use a shared limit for the total size of reservations. This can cause wasm code reservations to fail because wasm memories used all available reservation space. This CL introduces a soft limit which is used when allocating wasm memory with full guards. If this limit is reached and the respective flag is set, we fall back to allocation without full guards and check against the hard limit. Code reservations always check against the hard limit. R=ahaas@chromium.org Bug: v8:8196 Change-Id: I3fcbaeaa6f72c972d408d291af5d6b788d43151d Reviewed-on: https://chromium-review.googlesource.com/1233614Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#56028}
-
- 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}
-
- 17 Sep, 2018 1 commit
-
-
Clemens Hammacher authored
We still see occasions of "WebAssembly Instantiation: Out of memory: wasm memory", e.g. on the N5X arm64 bot. We already have a retry-loop around the {ReserveAddressSpace} call, so this error can only happen if {AllocatePages} fails. I cannot easily reproduce, so I will land this CL and hope that it fixes the flake. We might eventually replace all these gc-then-retry loops by a better mechanism which knows about process-wide allocations. Currently, {AllocatePages} is isolate-independent, and only calls {Platform::OnCriticalMemoryPressure}, but this call does nothing on the default platform. So trigger a GC on the current isolate instead. R=mlippautz@chromium.org Bug: chromium:883639, v8:7872, v8:8158 Change-Id: Ib4e4a4a5f6b598d5832c327b1fc83ccb3bada9bc Reviewed-on: https://chromium-review.googlesource.com/1226886Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#55955}
-
- 14 Sep, 2018 1 commit
-
-
Ulan Degenbaev authored
Currently dead ArrayBuffers with external memory are discovered and freed in sweeper. If sweeping is slow, it can take long time until the external memory is freed. This is why wasm currently forces at least two back-to-back GCs on allocaiton failure. This patch ensures eager finalization of ArrayBuffers on critical memory pressure notification. Bug: v8:7621 Change-Id: I96c75922577388cafab049f5cbce01d636a7b400 Reviewed-on: https://chromium-review.googlesource.com/1224328 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#55908}
-
- 13 Sep, 2018 1 commit
-
-
Clemens Hammacher authored
Just a minor fix to skip the third GC after which we fail anyway. R=ulan@chromium.org Bug: v8:7621 Change-Id: I4dd6bcedc20ecb75dc06af02649ff5c7b67317d0 Reviewed-on: https://chromium-review.googlesource.com/1224434Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#55870}
-
- 10 Sep, 2018 1 commit
-
-
Clemens Hammacher authored
If there are many workers and we are very unlucky, the cmpxchg loop can in fact fail for more than 5 times. This CL removes this unneeded limitation to avoid spurious failures. R=mstarzinger@chromium.org Bug: chromium:824443 Change-Id: I0a6adde1330c8a8389a42b36bf44e516fae8c574 Reviewed-on: https://chromium-review.googlesource.com/1213170Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#55749}
-
- 06 Sep, 2018 1 commit
-
-
Igor Sheludko authored
... like AllocatePage[s](), FreePages() and SetPermissions(). This CL also changes base::PageAllocator to cache AllocatePageSize and CommitPageSize values returned by the OS. This is a necessary cleanup before introducing BoundedPageAllocator. Bug: v8:8096 Change-Id: Ifb7cdd2caa6a1b029ce0fca6545c61df9d281be2 Reviewed-on: https://chromium-review.googlesource.com/1209343Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#55690}
-
- 23 Aug, 2018 1 commit
-
-
Stephan Herhut authored
Currently, we use an AllocationKind to signal to the embedder how v8 has allocated the backingstore of an array buffer. The embedder then has to implement matching logic to free an exernalized buffer. By Using custom deleters v8 can communicate how to free an externalized array buffer without requiring all embedders to implement corresponding freeing logic. Bug: v8:8073 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I553dec31ba167d6a7b342ded50d685be7dffd1c5 Reviewed-on: https://chromium-review.googlesource.com/1183484 Commit-Queue: Stephan Herhut <herhut@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#55347}
-
- 17 Aug, 2018 1 commit
-
-
Ben L. Titzer authored
JSArrays and JSArrayBuffers are very different animals. As such, split the js-array.h header into two parts. R=ulan@chromium.org,mstarzinger@chromium.org Bug: v8:5402 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I82f987ecea3e2e1ceaf8f8962a2b88165558c57e Reviewed-on: https://chromium-review.googlesource.com/1177760Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#55183}
-
- 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}
-
- 25 Jul, 2018 3 commits
-
-
Marja Hölttä authored
This significantly reduces the build time when modifying wasm files: before touching all wasm headers required 684 steps to rebuild, now it's 216. BUG=v8:7754,v8:7490 TBR=clemensh@chromium.org, ulan@chromium.org, tebbi@chromium.org, verwaest@chromium.org, jgruber@chromium.org Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: I9003b5b73ac568a29688c5f97ec718c9de8aaaef Reviewed-on: https://chromium-review.googlesource.com/1150163 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#54699}
-
Leszek Swirski authored
This reverts commit 9d18a7fd. Reason for revert: Breaks build https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux%20-%20noi18n%20-%20debug/21856 Original change's description: > [iwyu] Remove sfi-inl.h -> wasm include > > This significantly reduces the build time when modifying wasm > files: before touching all wasm headers required 684 steps to > rebuild, now it's 216. > > BUG=v8:7754,v8:7490 > > Change-Id: Id7ff6f9063168556daad4840ee614cf68144cdb2 > Reviewed-on: https://chromium-review.googlesource.com/1145264 > Commit-Queue: Marja Hölttä <marja@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > Reviewed-by: Clemens Hammacher <clemensh@chromium.org> > Cr-Commit-Position: refs/heads/master@{#54681} TBR=ulan@chromium.org,marja@chromium.org,titzer@chromium.org,jgruber@chromium.org,clemensh@chromium.org,tebbi@chromium.org,bmeurer@chromium.org,verwaest@chromium.org Change-Id: I3b4087916f65b16db75974dba58914c8ea377a08 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7754, v8:7490 Reviewed-on: https://chromium-review.googlesource.com/1149920Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#54683}
-
Marja Hölttä authored
This significantly reduces the build time when modifying wasm files: before touching all wasm headers required 684 steps to rebuild, now it's 216. BUG=v8:7754,v8:7490 Change-Id: Id7ff6f9063168556daad4840ee614cf68144cdb2 Reviewed-on: https://chromium-review.googlesource.com/1145264 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#54681}
-
- 24 Jul, 2018 1 commit
-
-
Ben L. Titzer authored
This is a preparatory CL that refactors the WASM memory allocation path, the WasmGraphBuilder, and several points of contact for ArrayBuffers to allow them to eventually be up to 4GiB. 1.) Refactor definition of constants to prepare for memories of size 2^32 2.) Refactor WasmInstanceObject fields memory_size and memory_mask to be stored as uintptr_t 3.) Refactor WasmGraphBuilder to use 64-bit comparisons for bounds checks 4.) Refactor JSArrayBuffer accessor methods to use size_t properly. 5.) Add empirical maximum memory and array buffer size tests R=mstarzinger@chromium.org BUG=v8:7881 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I78a49069cfa89757cc93f0a30b1c1a99c4b2edba Reviewed-on: https://chromium-review.googlesource.com/1112003 Commit-Queue: Ben Titzer <titzer@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#54646}
-
- 18 Jul, 2018 1 commit
-
-
Michael Starzinger authored
This removes two pointers to Histograms from the memory tracker. These histograms are stored as part of the Isolate and their lifetime is also coupled to the Isolate. We cannot bind the pointers but need to pass them (or the Isolate) as a parameter instead. R=clemensh@chromium.org BUG=v8:7424 Change-Id: I6b141b924bd858234641d6603a25fcb08cdf40e3 Reviewed-on: https://chromium-review.googlesource.com/1140312 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#54512}
-
- 21 Jun, 2018 1 commit
-
-
Eric Holk authored
This change adds an addition 2GiB of guard region in front of guarded WebAssembly memories. This provides defense in depth against code generation errors, such as accidental sign extension of a 32-bit value. As we consider supporting 4GiB WebAssembly memories, this is an important line of defense. Change-Id: Ica643c01ef28b5d2a01fbbd46273442545d8448e Reviewed-on: https://chromium-review.googlesource.com/1108503 Commit-Queue: Eric Holk <eholk@chromium.org> Reviewed-by:
Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#53949}
-
- 07 Jun, 2018 1 commit
-
-
Eric Holk authored
This CL adds the simplest version of a trap handler fallback. At instantiation time, we check whether the module was compiled to use trap handlers and the memory is guarded. If the memory is not guarded but the module is supposed to use trap handlers, we recompile the module with bounds checks so that we can use an unguarded memory. The compiled module is replaced with a bounds checking version, meaning future instances from this module will also use bounds checks. Some likely desirable features that are current missing but can be added future CLs include: * Disabling trap handler mode entirely. * Recompiling all old instances so that trap handler and bounds checked code does not coexist in the same process. Bug: v8:7143 Change-Id: I161fc0d544133b07dc4a93cc6af813369aaf3efe Reviewed-on: https://chromium-review.googlesource.com/1018182 Commit-Queue: Eric Holk <eholk@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#53566}
-
- 01 Jun, 2018 1 commit
-
-
Ivica Bogosavljevic authored
Most MIPS64 processors have user space of 2^40 bytes. Therefore, we need to lower the address space limit in WasmMemoryTracker for this particular architecture. Change-Id: Ic9945af7a15ecba7dfabfe996140941ada089b2a Reviewed-on: https://chromium-review.googlesource.com/1079551Reviewed-by:
Eric Holk <eholk@chromium.org> Commit-Queue: Ivica Bogosavljevic <ivica.bogosavljevic@mips.com> Cr-Commit-Position: refs/heads/master@{#53468}
-
- 29 May, 2018 1 commit
-
-
Eric Holk authored
This is no longer needed now that Wasm is more aggressive about collecting old memories. It also causes problems with the upcoming trap handler fallback path. Change-Id: I4b8513c28e0c0d7c6b232d399c1d97b645499ef1 Reviewed-on: https://chromium-review.googlesource.com/1043277Reviewed-by:
Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Eric Holk <eholk@chromium.org> Cr-Commit-Position: refs/heads/master@{#53425}
-
- 04 May, 2018 1 commit
-
-
Eric Holk authored
Change-Id: I19106adfd5407cbef05142fde3b7eb00ecd8ff52 Reviewed-on: https://chromium-review.googlesource.com/1043256Reviewed-by:
Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Eric Holk <eholk@chromium.org> Cr-Commit-Position: refs/heads/master@{#53007}
-
- 03 May, 2018 1 commit
-
-
Eric Holk authored
SetPermissions causes memory that was previously reserved but uncommitted to be committed. This could put us over the committed memory limit for the process, causing SetPermissions to fail. In this case, we should report this as an out of memory error rather than a crash. Bug: chromium:838880 Change-Id: I2785aa9f5608fa04196fee2b280e0c6df2f56ca8 Reviewed-on: https://chromium-review.googlesource.com/1040657Reviewed-by:
Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Eric Holk <eholk@chromium.org> Cr-Commit-Position: refs/heads/master@{#52928}
-
- 02 May, 2018 3 commits
-
-
Michael Lippautz authored
The tracker needs to maintain the byte length as there is no order guarantee when sweeping pages and the byte length may be a HeapNumber that is stored on a different page. The abstraction for ArrayBuffers is left untouched. We distinguish between the following cases: 1. Regular AB (backing_store and bye_length should be used) 2. AB allocated using kReservation but not part of wasm 3. AB allocated using kReservation and part of wasm In practice, 2. does not exist, but we still maintain "allocation_base" and "allocation_length" which fall back to backing_store and byte_length in this case. The problematic part is that they look like innocent getters on the object but actually refer to different data structures or on-heap objects. Since 2. does not exist, and 3. looks up the bounds in its own tracker, it is fine for ArrayBufferTracker to pass backing_store and tracked byte_length. Bug: v8:7701 Change-Id: Ib89d5fe94fce5cef8e5d8343a5415a3b9ad0deba Reviewed-on: https://chromium-review.googlesource.com/1039385Reviewed-by:
Ben Titzer <titzer@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#52923}
-
Eric Holk authored
This is a reland of ad221d14 Original change's description: > [wasm] Always enable guard regions on 64-bit platforms > > This change makes full 8 GiB guard regions always enabled on 64-bit > platforms. > > Additionally, since all Wasm memory allocation paths have some form of > guard regions, this removes and simplifies most of the logic around > whether to enable guard regions. > > This is a reland of https://crrev.com/c/985142. > > Bug: v8:7619 > Change-Id: I8bf1f86d6f89fd0bb2144431c7628f15a6b00ba0 > Reviewed-on: https://chromium-review.googlesource.com/996466 > Reviewed-by: Brad Nelson <bradnelson@chromium.org> > Commit-Queue: Eric Holk <eholk@chromium.org> > Cr-Commit-Position: refs/heads/master@{#52412} Bug: v8:7619 Change-Id: I0f311305472ca2305ad2fa9163560ff54c1422c2 Reviewed-on: https://chromium-review.googlesource.com/999872 Commit-Queue: Eric Holk <eholk@chromium.org> Reviewed-by:
Brad Nelson <bradnelson@chromium.org> Cr-Commit-Position: refs/heads/master@{#52921}
-
Eric Holk authored
These DCHECKs involve reading and comparing two variables that may be modified on a separate thread. Thus, there is no way to ensure these comparisons happen atomically. This leads to runtime failures that are otherwise benign. The other option would be to take the memory tracker mutex, but this seems unnecessary given that two atomic counters is sufficient and these checks are only used during debug builds. Bug: chromium:838043 Change-Id: I1b87698c46c550bd2d58bfef956b5a07cb2ec52c Reviewed-on: https://chromium-review.googlesource.com/1038886Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Eric Holk <eholk@chromium.org> Cr-Commit-Position: refs/heads/master@{#52920}
-
- 24 Apr, 2018 1 commit
-
-
Eric Holk authored
This adds two new UMA histograms to give us more insight into Wasm memory allocation. The first records the result of every attempt to to allocate a Wasm backing store. This will let us know things like how often we explicitly trigger a GC, or how often we hit our address space limit. The second records how many megabytes of address space Wasm reserves. A sample is added every time the number either increases or decreases. This metric will give us a sense of how many outstanding Wasm memories there are in typical usage. Change-Id: I38c1bc1ad915c26b6cda3c373ededdd395193a4c Reviewed-on: https://chromium-review.googlesource.com/1024646 Commit-Queue: Eric Holk <eholk@chromium.org> Reviewed-by:
Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#52767}
-
- 06 Apr, 2018 1 commit
-
-
Michael Achenbach authored
This reverts commit ad221d14. Reason for revert: Layout test failures: https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/22780 Original change's description: > [wasm] Always enable guard regions on 64-bit platforms > > This change makes full 8 GiB guard regions always enabled on 64-bit > platforms. > > Additionally, since all Wasm memory allocation paths have some form of > guard regions, this removes and simplifies most of the logic around > whether to enable guard regions. > > This is a reland of https://crrev.com/c/985142. > > Bug: v8:7619 > Change-Id: I8bf1f86d6f89fd0bb2144431c7628f15a6b00ba0 > Reviewed-on: https://chromium-review.googlesource.com/996466 > Reviewed-by: Brad Nelson <bradnelson@chromium.org> > Commit-Queue: Eric Holk <eholk@chromium.org> > Cr-Commit-Position: refs/heads/master@{#52412} TBR=bradnelson@chromium.org,eholk@chromium.org Change-Id: Ic15d14c6fa69300bc0fdc036b9fee8ecf65fd397 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7619 Reviewed-on: https://chromium-review.googlesource.com/999412Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#52418}
-
- 05 Apr, 2018 2 commits
-
-
Eric Holk authored
This change makes full 8 GiB guard regions always enabled on 64-bit platforms. Additionally, since all Wasm memory allocation paths have some form of guard regions, this removes and simplifies most of the logic around whether to enable guard regions. This is a reland of https://crrev.com/c/985142. Bug: v8:7619 Change-Id: I8bf1f86d6f89fd0bb2144431c7628f15a6b00ba0 Reviewed-on: https://chromium-review.googlesource.com/996466Reviewed-by:
Brad Nelson <bradnelson@chromium.org> Commit-Queue: Eric Holk <eholk@chromium.org> Cr-Commit-Position: refs/heads/master@{#52412}
-
Eric Holk authored
Bug: chromium:828293 Change-Id: I37002c308738eef1366d82a90b7b29d6e44d6c48 Reviewed-on: https://chromium-review.googlesource.com/996585 Commit-Queue: Eric Holk <eholk@chromium.org> Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#52405}
-
- 04 Apr, 2018 2 commits
-
-
Clemens Hammacher authored
We sometimes allow allocation to fail and return a null Handle in that case (e.g. for grow_memory). This refactors this code to return a MaybeHandle instead, to document that allocation might fail and to force the caller to handle this. R=mstarzinger@chromium.org Change-Id: Ia3ba65f840cfb1cf93e8dbd508a17375c19bae58 Reviewed-on: https://chromium-review.googlesource.com/995438 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#52358}
-
Clemens Hammacher authored
The first GC will collect dead JSArrayBuffers, but the release of the underlying JSArrayBuffer::Allocations might be delayed. Hence, a second GC might be needed. R=ulan@chromium.org Bug: v8:7621 Change-Id: Iee714f05cb939bb084d064be6d31dfbab32ff4ba Reviewed-on: https://chromium-review.googlesource.com/995533 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#52357}
-
- 03 Apr, 2018 1 commit
-
-
Eric Holk authored
This reverts commit 0cd7468b. Reason for revert: Blocks v8 roll into chromium: https://crbug.com/828499 Original change's description: > [wasm] Always enable guard regions on 64-bit platforms > > This change makes full 8 GiB guard regions always enabled on 64-bit > platforms. > > Additionally, since all Wasm memory allocation paths have some form of > guard regions, this removes and simplifies most of the logic around > whether to enable guard regions. > > R=gdeepti@chromium.org > > Change-Id: Idf3fbcc11ac70ea2ee7eb88c2173d6a1410395e1 > Reviewed-on: https://chromium-review.googlesource.com/985142 > Commit-Queue: Eric Holk <eholk@chromium.org> > Reviewed-by: Brad Nelson <bradnelson@chromium.org> > Cr-Commit-Position: refs/heads/master@{#52310} TBR=bradnelson@chromium.org,gdeepti@chromium.org,eholk@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Change-Id: I126b5afe283a4fe08adfa301e637d2641c29cccd Reviewed-on: https://chromium-review.googlesource.com/993160Reviewed-by:
Eric Holk <eholk@chromium.org> Commit-Queue: Eric Holk <eholk@chromium.org> Cr-Commit-Position: refs/heads/master@{#52334}
-
- 30 Mar, 2018 1 commit
-
-
Eric Holk authored
This change makes full 8 GiB guard regions always enabled on 64-bit platforms. Additionally, since all Wasm memory allocation paths have some form of guard regions, this removes and simplifies most of the logic around whether to enable guard regions. R=gdeepti@chromium.org Change-Id: Idf3fbcc11ac70ea2ee7eb88c2173d6a1410395e1 Reviewed-on: https://chromium-review.googlesource.com/985142 Commit-Queue: Eric Holk <eholk@chromium.org> Reviewed-by:
Brad Nelson <bradnelson@chromium.org> Cr-Commit-Position: refs/heads/master@{#52310}
-
- 29 Mar, 2018 1 commit
-
-
Eric Holk authored
Because the GC is not aware of address space usage, this CL causes Wasm to explicitly trigger a GC when its address space limit is reached in hopes of being able to successfully allocate memory. R=mlippautz@chromium.org R=gdeepti@chromium.org Change-Id: I2dcc560dd3d351dbfc4dda2f7c321c470a4d9fff Reviewed-on: https://chromium-review.googlesource.com/985103Reviewed-by:
Deepti Gandluri <gdeepti@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Eric Holk <eholk@chromium.org> Cr-Commit-Position: refs/heads/master@{#52305}
-
- 28 Mar, 2018 1 commit
-
-
Eric Holk authored
Just a simple cleanup CL. TryAllocateBackingStore function is only needed in wasm-memory.cc, so this makes that stronger by putting it in an anonymous namespace. Additionally, the whole function is moved to the top of the file. No functional change. R=gdeepti@chromium.org Change-Id: I0c5ea07c1ab81f3083eb75f0a6177c503fc827b5 Reviewed-on: https://chromium-review.googlesource.com/985023Reviewed-by:
Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Eric Holk <eholk@chromium.org> Cr-Commit-Position: refs/heads/master@{#52290}
-
- 24 Mar, 2018 1 commit
-
-
Eric Holk authored
Bug: chromium:825087 Change-Id: I2eb163e5399e98da75cd1e4ad6f0a62d6da4ae2c Reviewed-on: https://chromium-review.googlesource.com/978840Reviewed-by:
Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Eric Holk <eholk@chromium.org> Cr-Commit-Position: refs/heads/master@{#52198}
-