- 15 Dec, 2017 2 commits
-
-
Bill Budge authored
- Creates a memory management API in v8::internal, which corresponds to the existing one in base::OS. - Implements the new API in terms of the old one. - Changes all usage of the base::OS API to the one in v8::internal. This includes all tests, except platform and OS tests. - Makes OS:: methods private. - Moves all LSAN calls into the v8::internal functions. Bug: chromium:756050 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Iaa3f022e3e12fdebf937f3c76b6c6455014beb8a Reviewed-on: https://chromium-review.googlesource.com/794856 Commit-Queue: Bill Budge <bbudge@chromium.org> Reviewed-by:
Eric Holk <eholk@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#50139}
-
Bill Budge authored
Bug: chromium:793196 Change-Id: I289653be3968b221bfe4c0f03e8430b2ca76c55c Reviewed-on: https://chromium-review.googlesource.com/827645Reviewed-by:
Eric Holk <eholk@chromium.org> Commit-Queue: Bill Budge <bbudge@chromium.org> Cr-Commit-Position: refs/heads/master@{#50135}
-
- 13 Dec, 2017 1 commit
-
-
Bill Budge authored
- Makes ArrayBufferAllocatorBase forward all operations to default ArrayBufferAllocator. - ShellArrayBufferAllocator uses VM for allocations over a threshold. Bug: chromium:793750,v8:7146 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I62d8f9281b744e987223a16fbb762bd77747bf39 Reviewed-on: https://chromium-review.googlesource.com/822764Reviewed-by:
Eric Holk <eholk@chromium.org> Commit-Queue: Bill Budge <bbudge@chromium.org> Cr-Commit-Position: refs/heads/master@{#50087}
-
- 10 Dec, 2017 1 commit
-
-
Bill Budge authored
- Remove unnecessary LSAN #include. - Use i:: instead of internal:: for consistency. Bug: Change-Id: I783b28402bf9c661e51b629167ec73b98a6b9fd7 Reviewed-on: https://chromium-review.googlesource.com/818198Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Bill Budge <bbudge@chromium.org> Cr-Commit-Position: refs/heads/master@{#49979}
-
- 08 Dec, 2017 1 commit
-
-
Bill Budge authored
- Changes d8 ArrayBuffer::Allocators to restrict size to < 2GB on the Allocate/AllocateUninitialized paths. Reserve can still create larger ArrayBuffers. Bug: chromium:793196 Change-Id: I662f8c681f715457d630df31039a1ea4d17cfafc Reviewed-on: https://chromium-review.googlesource.com/817763 Commit-Queue: Bill Budge <bbudge@chromium.org> Reviewed-by:
Mircea Trofin <mtrofin@chromium.org> Cr-Commit-Position: refs/heads/master@{#49973}
-
- 07 Dec, 2017 2 commits
-
-
Bill Budge authored
This is a reland of 0c2faa06 Original change's description: > [D8] Clean up ArrayBuffer Allocators in shell. > > - Reworks the class hierarchy in d8.cc to conform to the allocator API. > In particular, allocators should malloc/free or equivalent unless > v8::ArrayBuffer::Allocator::Reserve is called. > - Modifies ExternalizedContents to remember the allocation mode. > - ArrayAllocatorBase now tracks its allocations to make sure it doesn't > call Free on externalized array buffers it didn't allocate. > > Bug: chromium:756050 > Change-Id: Ic2d07d36358f1b4fa542bea27f93d1d51a1757e1 > Reviewed-on: https://chromium-review.googlesource.com/807355 > Commit-Queue: Bill Budge <bbudge@chromium.org> > Reviewed-by: Ben Titzer <titzer@chromium.org> > Reviewed-by: Eric Holk <eholk@chromium.org> > Cr-Commit-Position: refs/heads/master@{#49893} Bug: chromium:756050,v8:7146 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I8fe3a9d9af43196e16d02342a47347a76c0a1341 Reviewed-on: https://chromium-review.googlesource.com/811724Reviewed-by:
Eric Holk <eholk@chromium.org> Commit-Queue: Bill Budge <bbudge@chromium.org> Cr-Commit-Position: refs/heads/master@{#49945}
-
Karl Schimpf authored
The previous code assumed that trap handling was a global concept, defined by function trap_handler::UseTrapHandler(). This CL does the first step in changing the decision to be specifiable at a module level. Therefore trap_handler::UseTrapHandler() is replaced by trap_handler::IsTrapHandlerEnabled(), and communicates if compilation supports the use of trap handlers (but still allowing the use of bounds checking on memory accesses). It then refactors the classes ModuleEnv and WasmCompiledModule to have a field "use_trap_handler" that specifies if traps should be used for the memory accesses in the module being compiled. Bug: v8:7143 Change-Id: I9844842d5721c86c2dd55e911b42bf8b9922cf63 Reviewed-on: https://chromium-review.googlesource.com/802322 Commit-Queue: Eric Holk <eholk@chromium.org> Reviewed-by:
Ben Titzer <titzer@chromium.org> Reviewed-by:
Mircea Trofin <mtrofin@chromium.org> Reviewed-by:
Eric Holk <eholk@chromium.org> Cr-Commit-Position: refs/heads/master@{#49915}
-
- 06 Dec, 2017 2 commits
-
-
Michael Achenbach authored
This reverts commit 0c2faa06. Reason for revert: seems to make win asan flaky: https://build.chromium.org/p/client.v8/builders/V8%20Win32%20ASAN/builds/1094 https://build.chromium.org/p/client.v8/builders/V8%20Win32%20ASAN/builds/1095 Original change's description: > [D8] Clean up ArrayBuffer Allocators in shell. > > - Reworks the class hierarchy in d8.cc to conform to the allocator API. > In particular, allocators should malloc/free or equivalent unless > v8::ArrayBuffer::Allocator::Reserve is called. > - Modifies ExternalizedContents to remember the allocation mode. > - ArrayAllocatorBase now tracks its allocations to make sure it doesn't > call Free on externalized array buffers it didn't allocate. > > Bug: chromium:756050 > Change-Id: Ic2d07d36358f1b4fa542bea27f93d1d51a1757e1 > Reviewed-on: https://chromium-review.googlesource.com/807355 > Commit-Queue: Bill Budge <bbudge@chromium.org> > Reviewed-by: Ben Titzer <titzer@chromium.org> > Reviewed-by: Eric Holk <eholk@chromium.org> > Cr-Commit-Position: refs/heads/master@{#49893} TBR=bbudge@chromium.org,titzer@chromium.org,eholk@chromium.org Change-Id: I0f3ecc10de843102e7681285f0300cf98704c92c No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:756050 Reviewed-on: https://chromium-review.googlesource.com/810904Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#49895}
-
Bill Budge authored
- Reworks the class hierarchy in d8.cc to conform to the allocator API. In particular, allocators should malloc/free or equivalent unless v8::ArrayBuffer::Allocator::Reserve is called. - Modifies ExternalizedContents to remember the allocation mode. - ArrayAllocatorBase now tracks its allocations to make sure it doesn't call Free on externalized array buffers it didn't allocate. Bug: chromium:756050 Change-Id: Ic2d07d36358f1b4fa542bea27f93d1d51a1757e1 Reviewed-on: https://chromium-review.googlesource.com/807355 Commit-Queue: Bill Budge <bbudge@chromium.org> Reviewed-by:
Ben Titzer <titzer@chromium.org> Reviewed-by:
Eric Holk <eholk@chromium.org> Cr-Commit-Position: refs/heads/master@{#49893}
-
- 04 Dec, 2017 1 commit
-
-
Mythri authored
code_cache_map_ is used to store the serialized code that could be consumed in the subsequent runs. This is a std::map which is not thread safe. So protect this with mutex to avoid any race conditions when executing in multiple isolates in parallel. Bug: chromium:783124 Change-Id: Ie58402b8547cf3e83716b8d97d98a298745e487f Reviewed-on: https://chromium-review.googlesource.com/806334Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#49837}
-
- 01 Dec, 2017 1 commit
-
-
Mythri authored
Adds new API function to request code cache. Earlier code cache was produced along with compile requests. This new API allows us to request code cache after executing. Also adds support in the code serializer to serialize after executing the script. Bug: chromium:783124,chromium:789694 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Id4e6a967e176e3e979dc4ccb9a37a353c70c3890 Reviewed-on: https://chromium-review.googlesource.com/797036Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#49793}
-
- 30 Nov, 2017 1 commit
-
-
Andreas Haas authored
This CL fixes an issue with --enable-tracing which was introduced recently where the tracing file was closed too early. In addition it adds a test for --enable-tracing to avoid such an issue in the future. R=machenbach@chromium.org, rmcilroy@chromium.org Change-Id: I1b3699a4dfbe27230ac1d21d5f6bc7b2ee9ed435 Reviewed-on: https://chromium-review.googlesource.com/796214Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#49742}
-
- 29 Nov, 2017 2 commits
-
-
Michael Achenbach authored
This reverts commit 5d4a0903. Reason for revert: Speculative revert due to timeouts on testing with --isolates: https://build.chromium.org/p/client.v8/builders/V8%20Linux/builds/21889 https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20debug/builds/18138 Original change's description: > Add support to produce code cache after execute. > > Adds new API function to request code cache. Earlier code cache was > produced along with compile requests. This new API allows us to request > code cache after executing. Also adds support in the code serializer to > serialize after executing the script. > > Bug: chromium:783124 > Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng > Change-Id: Id7b972a2b4c8dcf7a6d9f5ea210890ae968320bd > Reviewed-on: https://chromium-review.googlesource.com/781767 > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Commit-Queue: Mythri Alle <mythria@chromium.org> > Cr-Commit-Position: refs/heads/master@{#49717} TBR=ulan@chromium.org,rmcilroy@chromium.org,yangguo@chromium.org,mythria@chromium.org Change-Id: Id9e0285e73bbc3ea3908b4b7bbf6599e4f7cd76e No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:783124 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Reviewed-on: https://chromium-review.googlesource.com/796870Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#49722}
-
Mythri authored
Adds new API function to request code cache. Earlier code cache was produced along with compile requests. This new API allows us to request code cache after executing. Also adds support in the code serializer to serialize after executing the script. Bug: chromium:783124 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Id7b972a2b4c8dcf7a6d9f5ea210890ae968320bd Reviewed-on: https://chromium-review.googlesource.com/781767Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#49717}
-
- 28 Nov, 2017 2 commits
-
-
Michael Achenbach authored
This reverts commit 61367a25. Reason for revert: http://shortn/_amqTfxgjk0 Original change's description: > [platform][cleanup] Fix --enable-tracing > > The flag --enable-tracing can be used to measure how much time is spent > in a scope. In d8 this flag did not work properly for the following > reasons: > > * The tracing file is not written when the JavaScript code calls quit(). > > * The tracing file is not written when the JavaScript code throws an > uncaught exception, except if the --throws flag is passed to d8. > > The reason for these two issues is that both call Shell::Exit(), which > end d8 immediately without calling any destructors. In addition I moved > in a recent CL the destruction of the platform after the destruction of > the file handle for the tracing file. Thereby the tracing file did not > get filled with content even destructors were executed. > > With this CL I also call the destructors of the platform and of the file > handle in the Shell::Exit() function. For this I make Shell::Exit() > platform independent and let it call the platform dependent > Shell::OSExit() at the end. > > R=rmcilroy@chromium.org > > Change-Id: I14425b6a5c25b757211bc8b9959a9cc8bfa0602c > Reviewed-on: https://chromium-review.googlesource.com/789038 > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Commit-Queue: Andreas Haas <ahaas@chromium.org> > Cr-Commit-Position: refs/heads/master@{#49659} TBR=rmcilroy@chromium.org,ahaas@chromium.org Change-Id: I17c6f19c38cb337b00707f606f267b52b7f2c1e6 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/792991Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#49663}
-
Andreas Haas authored
The flag --enable-tracing can be used to measure how much time is spent in a scope. In d8 this flag did not work properly for the following reasons: * The tracing file is not written when the JavaScript code calls quit(). * The tracing file is not written when the JavaScript code throws an uncaught exception, except if the --throws flag is passed to d8. The reason for these two issues is that both call Shell::Exit(), which end d8 immediately without calling any destructors. In addition I moved in a recent CL the destruction of the platform after the destruction of the file handle for the tracing file. Thereby the tracing file did not get filled with content even destructors were executed. With this CL I also call the destructors of the platform and of the file handle in the Shell::Exit() function. For this I make Shell::Exit() platform independent and let it call the platform dependent Shell::OSExit() at the end. R=rmcilroy@chromium.org Change-Id: I14425b6a5c25b757211bc8b9959a9cc8bfa0602c Reviewed-on: https://chromium-review.googlesource.com/789038Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#49659}
-
- 21 Nov, 2017 1 commit
-
-
Michael Achenbach authored
Without this flag, the load() function is very chatty when an exception is thrown out of it, independent if the surrounding code catches it or not. Bug: v8:6972 Change-Id: I4ca82689c42c729716b83e420d9c7f7e2b5213d1 Reviewed-on: https://chromium-review.googlesource.com/781688Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#49555}
-
- 17 Nov, 2017 2 commits
-
-
Michael Lippautz authored
Persistent handles are always independent these days. Users should mark weak handles as active using MarkActive if they want to keep weak handles that are otherwise unreachable alive across scavenges. Bug: chromium:780749 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I116e984ce14a035d1cef491d49f11a388fa8169d Reviewed-on: https://chromium-review.googlesource.com/759794 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#49456}
-
Bill Budge authored
- Warn on unused result for OS Allocate, Free, SetPermissions, CommitRegion, UncommitRegion functions. - Adds CHECKS or DCHECK/USE around call sites. Bug: chromium:756050 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Ic00b0a42a1e09bdba013b7fa2b1b4e2b7591bac6 Reviewed-on: https://chromium-review.googlesource.com/769792Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Bill Budge <bbudge@chromium.org> Cr-Commit-Position: refs/heads/master@{#49449}
-
- 16 Nov, 2017 1 commit
-
-
Bill Budge authored
- Adds SetPermissions method which returns bool result. - Eliminates Guard, SetReadAndWritable, SetReadAndExecutable, and SetReadWriteAndExecutable methods. - Adds some Fuchsia memory allocation implementation. - Some minor fixes in usage of OS::AllocatePageSize and OS::CommitPageSize. - Adds DCHECKs for sanitizing parameters to OS::Allocate/Free. Bug: chromium:756050 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I966ec6f029dd0371d70eca20bae197d87956f8b5 Reviewed-on: https://chromium-review.googlesource.com/760657 Commit-Queue: Bill Budge <bbudge@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#49430}
-
- 15 Nov, 2017 2 commits
-
-
Andreas Haas authored
On the PredictablePlatform we return the ForegroundTaskRunner of the underlying platform in both GetForeGroundTaskRunner and GetBackgroundTaskRunner. The reason is that thereby we can enforce a predictable, sequential execution of tasks. R=clemensh@chromium.org, rmcilroy@chromium.org Change-Id: Icec9fe52da922b1e75a3fb5b0155083be0a3a0fd Reviewed-on: https://chromium-review.googlesource.com/771792Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#49384}
-
Ross McIlroy authored
Adds a stress-background-compile mode which runs compilation on a background thread at the same time as compiling on the main thread to flush out races. This is added as one of the variants, removing stress_asm_validation since this is no longer a useful variant. BUG=v8:5203 Change-Id: I73dd9f21d9b6da4a4cb39c05061aa24116e6c5ad Reviewed-on: https://chromium-review.googlesource.com/741746 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Sergiy Byelozyorov <sergiyb@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#49376}
-
- 14 Nov, 2017 2 commits
-
-
Bill Budge authored
This is a reland of 4899bcb6 This is a reland of b73ee334 Original change's description: > [Memory] Use OS::Allocate for all OS memory allocations. > > - Eliminates OS::ReserveRegion and OS::ReserveAlignedRegion. > - Changes OS::Allocate to take alignment parameter, reorders parameters > to match page_allocator. > - Since the size of memory allocation can be deduced, don't return the > amount of memory allocated. > - Changes reservation of aligned address space. Before we would reserve > (size + alignment) rounded up to page size. This is too much, because > maximum misalignment is (alignment - page_size). > - On Windows and Cygwin, we release an oversize allocation and > immediately retry at the aligned address in the allocation. If we > lose the address due to a race, we just retry. > - Clean up all the calls to OS::Allocate in codegen and tests by adding > helper AllocateSystemPage function (allocation.h) and > AllocateAssemblerBuffer (cctest.h). > - Changes 'assm' to 'masm' in some targets for consistency when using > a macro-assembler. > > - Eliminates OS::ReleaseRegion, replacing with calls to OS::Free. > - Adds bool return value to OS::Free. > - Cleans up types of flags, protection on Windows and Cygwin. > Bug: chromium:756050 > Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng > Change-Id: I306dbe042cc867670fdc935abca29db074b0da71 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Iad3c025334e8f8d7d647be99a36a11ee449c9087 Reviewed-on: https://chromium-review.googlesource.com/767014 Commit-Queue: Bill Budge <bbudge@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#49363}
-
Andreas Haas authored
With this CL, {CreateDefaultPlatform} returns a unique_ptr to indicate that the caller owns the returned memory. We had several memory leaks where the memory of the DefaultPlatform did not get deallocated. In addition, the {TracingController} of the {DefaultPlatform} also gets received as a unique_ptr. Thereby we document that the {DefaultPlatform} takes ownership of the {TracingController}. Note that the memory of the {TracingController} was already owned by the {DefaultPlatform}, but it was not documented in the interface, and it was used incorrectly in tests. This CL fixes the asan issues in https://chromium-review.googlesource.com/c/v8/v8/+/753583 ([platform] Implement TaskRunners in the DefaultPlatform) R=rmcilroy@chromium.org Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I0d1a6d3b22bb8289dc050b1977e4f58381cec675 Reviewed-on: https://chromium-review.googlesource.com/755033Reviewed-by:
Adam Klein <adamk@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#49349}
-
- 11 Nov, 2017 1 commit
-
-
Jakob Gruber authored
Revert this and its follow-up as suspect for current canary OOM crasher. This reverts commit 4899bcb6. This reverts commit b73ee334. TBR=adamk@chromium.org,hpayer@chromium.org Bug: chromium:783708 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I4c00582e7ab2df22216ad6732e2843e9958db0c0 Reviewed-on: https://chromium-review.googlesource.com/765447Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Bill Budge <bbudge@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#49315}
-
- 10 Nov, 2017 1 commit
-
-
Bill Budge authored
- Eliminates OS::ReleaseRegion, replacing with calls to OS::Free. - Adds bool return value to OS::Free. - Cleans up types of flags, protection on Windows and Cygwin. Bug: chromium:756050 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I6a642374e33876966a5552fb0cdf552dc6d79aaa Reviewed-on: https://chromium-review.googlesource.com/762345 Commit-Queue: Bill Budge <bbudge@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#49305}
-
- 09 Nov, 2017 1 commit
-
-
Bill Budge authored
This is a reland of 7e78506f Original change's description: > [Memory] Use OS::Allocate for all OS memory allocations. > > - Eliminates OS::ReserveRegion and OS::ReserveAlignedRegion. > - Changes OS::Allocate to take alignment parameter, reorders parameters > to match page_allocator. > - Since the size of memory allocation can be deduced, don't return the > amount of memory allocated. > - Changes reservation of aligned address space. Before we would reserve > (size + alignment) rounded up to page size. This is too much, because > maximum misalignment is (alignment - page_size). > - On Windows and Cygwin, we release an oversize allocation and > immediately retry at the aligned address in the allocation. If we > lose the address due to a race, we just retry. > - Clean up all the calls to OS::Allocate in codegen and tests by adding > helper AllocateSystemPage function (allocation.h) and > AllocateAssemblerBuffer (cctest.h). > - Changes 'assm' to 'masm' in some targets for consistency when using > a macro-assembler. > > Bug: chromium:756050 > Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng > Change-Id: I306dbe042cc867670fdc935abca29db074b0da71 > Reviewed-on: https://chromium-review.googlesource.com/749848 > Commit-Queue: Bill Budge <bbudge@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Hannes Payer <hpayer@chromium.org> > Cr-Commit-Position: refs/heads/master@{#49235} Bug: chromium:756050 Change-Id: I333f7a6aea0bcb608d01cafb43e94893a4625b15 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Reviewed-on: https://chromium-review.googlesource.com/758509Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Bill Budge <bbudge@chromium.org> Cr-Commit-Position: refs/heads/master@{#49273}
-
- 08 Nov, 2017 2 commits
-
-
Bill Budge authored
This reverts commit 7e78506f. Reason for revert: Broke Android build on Arm64. Original change's description: > [Memory] Use OS::Allocate for all OS memory allocations. > > - Eliminates OS::ReserveRegion and OS::ReserveAlignedRegion. > - Changes OS::Allocate to take alignment parameter, reorders parameters > to match page_allocator. > - Since the size of memory allocation can be deduced, don't return the > amount of memory allocated. > - Changes reservation of aligned address space. Before we would reserve > (size + alignment) rounded up to page size. This is too much, because > maximum misalignment is (alignment - page_size). > - On Windows and Cygwin, we release an oversize allocation and > immediately retry at the aligned address in the allocation. If we > lose the address due to a race, we just retry. > - Clean up all the calls to OS::Allocate in codegen and tests by adding > helper AllocateSystemPage function (allocation.h) and > AllocateAssemblerBuffer (cctest.h). > - Changes 'assm' to 'masm' in some targets for consistency when using > a macro-assembler. > > Bug: chromium:756050 > Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng > Change-Id: I306dbe042cc867670fdc935abca29db074b0da71 > Reviewed-on: https://chromium-review.googlesource.com/749848 > Commit-Queue: Bill Budge <bbudge@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Hannes Payer <hpayer@chromium.org> > Cr-Commit-Position: refs/heads/master@{#49235} TBR=bbudge@chromium.org,hpayer@chromium.org,mlippautz@chromium.org Change-Id: Ic09de4d63c19746a62e804b1f889817ffaebc330 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:756050 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Reviewed-on: https://chromium-review.googlesource.com/758625Reviewed-by:
Bill Budge <bbudge@chromium.org> Commit-Queue: Bill Budge <bbudge@chromium.org> Cr-Commit-Position: refs/heads/master@{#49242}
-
Bill Budge authored
- Eliminates OS::ReserveRegion and OS::ReserveAlignedRegion. - Changes OS::Allocate to take alignment parameter, reorders parameters to match page_allocator. - Since the size of memory allocation can be deduced, don't return the amount of memory allocated. - Changes reservation of aligned address space. Before we would reserve (size + alignment) rounded up to page size. This is too much, because maximum misalignment is (alignment - page_size). - On Windows and Cygwin, we release an oversize allocation and immediately retry at the aligned address in the allocation. If we lose the address due to a race, we just retry. - Clean up all the calls to OS::Allocate in codegen and tests by adding helper AllocateSystemPage function (allocation.h) and AllocateAssemblerBuffer (cctest.h). - Changes 'assm' to 'masm' in some targets for consistency when using a macro-assembler. Bug: chromium:756050 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I306dbe042cc867670fdc935abca29db074b0da71 Reviewed-on: https://chromium-review.googlesource.com/749848 Commit-Queue: Bill Budge <bbudge@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#49235}
-
- 07 Nov, 2017 3 commits
-
-
Yang Guo authored
This change - adds new maps for elements, global, and named dictionaries. - adds support to embed these dictionaries in the startup snapshot. - adds support to embed these dictionaries in the code cache. - refactors the rehashing logic. TBR=mstarzinger@chromium.org, ishell@chromium.org, jgruber@chromium.org Bug: v8:6593 Change-Id: I2455fe2a9cc6e93247940de99de5f124c2ada137 Reviewed-on: https://chromium-review.googlesource.com/756693Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#49167}
-
Eric Holk authored
This reverts commit 32f30f63. Reason for revert: broken Fuchsia build, https://logs.chromium.org/v/?s=chromium%2Fbb%2Fclient.v8%2FV8_Fuchsia%2F460%2F%2B%2Frecipes%2Fsteps%2Fcompile%2F0%2Fstdout Original change's description: > [platform] check return values from memory operations > > This change adds DCHECKs for calls such as mprotect, as well as marking some of > the memory allocation and deallocation routines as V8_MUST_USE_RESULT. This > additional checking gives us more useful information for failure in the presence > of, for example, address space exhaustion. > > Bug: > Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng > Change-Id: I5bc76c1da6160262d3d556fea49d284ddd4e02c5 > Reviewed-on: https://chromium-review.googlesource.com/721267 > Commit-Queue: Eric Holk <eholk@chromium.org> > Reviewed-by: Hannes Payer <hpayer@chromium.org> > Cr-Commit-Position: refs/heads/master@{#49164} TBR=hpayer@chromium.org,mlippautz@google.com,eholk@chromium.org Change-Id: Ie4b57b45c801dcce7884645f50ff74f833de6dc4 No-Presubmit: true No-Tree-Checks: true No-Try: true Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Reviewed-on: https://chromium-review.googlesource.com/756137Reviewed-by:
Eric Holk <eholk@chromium.org> Commit-Queue: Eric Holk <eholk@chromium.org> Cr-Commit-Position: refs/heads/master@{#49165}
-
Eric Holk authored
This change adds DCHECKs for calls such as mprotect, as well as marking some of the memory allocation and deallocation routines as V8_MUST_USE_RESULT. This additional checking gives us more useful information for failure in the presence of, for example, address space exhaustion. Bug: Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I5bc76c1da6160262d3d556fea49d284ddd4e02c5 Reviewed-on: https://chromium-review.googlesource.com/721267 Commit-Queue: Eric Holk <eholk@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#49164}
-
- 06 Nov, 2017 2 commits
-
-
Adam Klein authored
This reverts commit 3877bf6f. Reason for revert: failed compilation on Win64/clang: https://build.chromium.org/p/client.v8/builders/V8%20Win64%20-%20clang/builds/9015 Original change's description: > Snapshot: support rehashing property and element dictionaries. > > This change > - adds new maps for elements, global, and named dictionaries. > - adds support to embed these dictionaries in the startup snapshot. > - adds support to embed these dictionaries in the code cache. > - refactors the rehashing logic. > > R=ishell@chromium.org, jgruber@chromium.org, mstarzinger@chromium.org > > Bug: v8:6593 > Change-Id: I8d9a7ba7145f1af4e6e15301a4d5611f07c77f33 > Reviewed-on: https://chromium-review.googlesource.com/753323 > Reviewed-by: Igor Sheludko <ishell@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Commit-Queue: Yang Guo <yangguo@chromium.org> > Cr-Commit-Position: refs/heads/master@{#49155} TBR=yangguo@chromium.org,mstarzinger@chromium.org,jgruber@chromium.org,ishell@chromium.org Change-Id: I0b45d2d07da97b9a7953abf4ad24eec4ea944306 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:6593 Reviewed-on: https://chromium-review.googlesource.com/755493Reviewed-by:
Adam Klein <adamk@chromium.org> Commit-Queue: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#49156}
-
Yang Guo authored
This change - adds new maps for elements, global, and named dictionaries. - adds support to embed these dictionaries in the startup snapshot. - adds support to embed these dictionaries in the code cache. - refactors the rehashing logic. R=ishell@chromium.org, jgruber@chromium.org, mstarzinger@chromium.org Bug: v8:6593 Change-Id: I8d9a7ba7145f1af4e6e15301a4d5611f07c77f33 Reviewed-on: https://chromium-review.googlesource.com/753323Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#49155}
-
- 03 Nov, 2017 1 commit
-
-
Clemens Hammacher authored
If an error is thrown in a setTimeout callback, exit d8 with an error code. This will allow us to test asynchronous failures better, see linked bug. R=yangguo@chromium.org CC=mathias@chromium.org Bug: v8:6981 Change-Id: Ifad152e6039f12dc4ceaac0bdc4b87f709898087 Reviewed-on: https://chromium-review.googlesource.com/738372Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#49104}
-
- 18 Oct, 2017 2 commits
-
-
Bill Budge authored
This reverts commit d607f1e7. Reason for revert: Suspected cause of hanging tests: https://bugs.chromium.org/p/v8/issues/detail?id=6927#c13 Original change's description: > [Memory] Move GetRandomMmapAddr from base::OS platform to v8::internal. > > - Moves GetRandomMmapAddr from platform to v8::internal allocation > primitives, in preparation for delegating this to the embedder. > - Adds hint parameters to OS functions that used to use this function. > > Bug: chromium:756050 > Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng > Change-Id: Iad72e6eac9c08a3e22c2cd2b2905623b8e514ae0 > Reviewed-on: https://chromium-review.googlesource.com/677777 > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Commit-Queue: Bill Budge <bbudge@chromium.org> > Cr-Commit-Position: refs/heads/master@{#48124} TBR=bbudge@chromium.org,ulan@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: chromium:756050 Change-Id: I2c515934906e67b47ceea2863bc2992ac1d23ab3 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Reviewed-on: https://chromium-review.googlesource.com/726319 Commit-Queue: Bill Budge <bbudge@chromium.org> Reviewed-by:
Bill Budge <bbudge@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#48701}
-
Clemens Hammacher authored
This CL fixes all occurences that don't require special OWNER reviews, or can be reviewed by Michi. After this one, we should be able to reenable the readability/check cpplint check. R=mstarzinger@chromium.org Bug: v8:6837, v8:6921 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng;master.tryserver.v8:v8_linux_noi18n_rel_ng Change-Id: Ic81d68d5534eaa795b7197fed5c41ed158361d62 Reviewed-on: https://chromium-review.googlesource.com/721120 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#48670}
-
- 17 Oct, 2017 1 commit
-
-
Ben L. Titzer authored
This feature is turned off in flag-definitions but reenabled in a non-standard way in d8. Given that the situations in which the trap handler are disabled are more limited now due to integration problems, disabling this feature for now, since we lack enough coverage to have confidence to turn it on by default. We should probably introduce a proper test variant for this feature so that it can be handled in a more standard way. R=eholk@chromium.org CC=mlippautz@chromium.org,hablich@chromium.org,mstarzinger@chromium.org Bug: Change-Id: Ic2e13181036ace8802736be847ae16ff889e3cea Reviewed-on: https://chromium-review.googlesource.com/723221 Commit-Queue: Ben Titzer <titzer@chromium.org> Reviewed-by:
Eric Holk <eholk@chromium.org> Cr-Commit-Position: refs/heads/master@{#48646}
-
- 13 Oct, 2017 2 commits
-
-
Eric Holk authored
Enabling trap handlers has been causing problems with sanitizers, stress bots, clusterfuzz, etc. Some of these fixes will require more in depth changes. In the meantime, this restores the original behavior so the bots can turn green again. This change reverts https://crrev.com/c/673548. Bug: v8:6924 Change-Id: I4277ae53bc98f9896b800d015fda2ce68ae9e6f5 Cq-Include-Trybots: master.tryserver.v8:v8_linux64_tsan_concurrent_marking_rel_ng Reviewed-on: https://chromium-review.googlesource.com/718480Reviewed-by:
Mircea Trofin <mtrofin@chromium.org> Commit-Queue: Eric Holk <eholk@chromium.org> Cr-Commit-Position: refs/heads/master@{#48563}
-
Mathias Bynens authored
New code should use nullptr instead of NULL. This patch updates existing use of NULL to nullptr where applicable, making the code base more consistent. BUG=v8:6928,v8:6921 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng;master.tryserver.v8:v8_linux_noi18n_rel_ng Change-Id: I4687f5b96fcfd88b41fa970a2b937b4f6538777c Reviewed-on: https://chromium-review.googlesource.com/718338 Commit-Queue: Mathias Bynens <mathias@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#48557}
-