1. 17 Aug, 2018 1 commit
  2. 24 Jul, 2018 1 commit
    • Clemens Hammacher's avatar
      Reland "[turboassembler] Introduce hard-abort mode" · d324382e
      Clemens Hammacher authored
      This is a reland of a462a785
      
      Original change's description:
      > [turboassembler] Introduce hard-abort mode
      > 
      > For checks and assertions (mostly for debug code, like stack alignment
      > or zero extension), we had two modes: Emit a call to the {Abort}
      > runtime function (the default), and emit a debug break (used for
      > testing, enabled via --trap-on-abort).
      > In wasm, where we cannot just call a runtime function because code must
      > be isolate independent, we always used the trap-on-abort behaviour.
      > This causes problems for our fuzzers, which do not catch SIGTRAP, and
      > hence do not detect debug code failures.
      > 
      > This CL introduces a third mode ("hard abort"), which calls a C
      > function via {ExternalReference}. The C function still outputs the
      > abort reason, but does not print the stack trace. It then aborts via
      > "OS::Abort", just like the runtime function.
      > This will allow fuzzers to detect the crash and even find a nice error
      > message.
      > 
      > Even though this looks like a lot of code churn, it is actually not.
      > Most added lines are new tests, and other changes are minimal.
      > 
      > R=mstarzinger@chromium.org
      > 
      > Bug: chromium:863799
      > Change-Id: I77c58ff72db552d49014614436259ccfb49ba87b
      > Reviewed-on: https://chromium-review.googlesource.com/1142163
      > Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#54592}
      
      Bug: chromium:863799
      Change-Id: I7729a47b4823a982a8e201df36520aa2b6ef5326
      Reviewed-on: https://chromium-review.googlesource.com/1146100Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54656}
      d324382e
  3. 20 Jul, 2018 2 commits
    • Sigurd Schneider's avatar
      Speculatively revert "[turboassembler] Introduce hard-abort mode" · 039c18e1
      Sigurd Schneider authored
      This reverts commit a462a785.
      
      Reason for revert: Breaks a TurboAssembler test:
      https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Arm/7726
      
      Original change's description:
      > [turboassembler] Introduce hard-abort mode
      > 
      > For checks and assertions (mostly for debug code, like stack alignment
      > or zero extension), we had two modes: Emit a call to the {Abort}
      > runtime function (the default), and emit a debug break (used for
      > testing, enabled via --trap-on-abort).
      > In wasm, where we cannot just call a runtime function because code must
      > be isolate independent, we always used the trap-on-abort behaviour.
      > This causes problems for our fuzzers, which do not catch SIGTRAP, and
      > hence do not detect debug code failures.
      > 
      > This CL introduces a third mode ("hard abort"), which calls a C
      > function via {ExternalReference}. The C function still outputs the
      > abort reason, but does not print the stack trace. It then aborts via
      > "OS::Abort", just like the runtime function.
      > This will allow fuzzers to detect the crash and even find a nice error
      > message.
      > 
      > Even though this looks like a lot of code churn, it is actually not.
      > Most added lines are new tests, and other changes are minimal.
      > 
      > R=​mstarzinger@chromium.org
      > 
      > Bug: chromium:863799
      > Change-Id: I77c58ff72db552d49014614436259ccfb49ba87b
      > Reviewed-on: https://chromium-review.googlesource.com/1142163
      > Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#54592}
      
      TBR=mstarzinger@chromium.org,clemensh@chromium.org
      
      Change-Id: I60c011cfe262ccebbb9abf32699a9fe17e72a3c8
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: chromium:863799
      Reviewed-on: https://chromium-review.googlesource.com/1145431
      Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
      Reviewed-by: 's avatarSigurd Schneider <sigurds@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54597}
      039c18e1
    • Clemens Hammacher's avatar
      [turboassembler] Introduce hard-abort mode · a462a785
      Clemens Hammacher authored
      For checks and assertions (mostly for debug code, like stack alignment
      or zero extension), we had two modes: Emit a call to the {Abort}
      runtime function (the default), and emit a debug break (used for
      testing, enabled via --trap-on-abort).
      In wasm, where we cannot just call a runtime function because code must
      be isolate independent, we always used the trap-on-abort behaviour.
      This causes problems for our fuzzers, which do not catch SIGTRAP, and
      hence do not detect debug code failures.
      
      This CL introduces a third mode ("hard abort"), which calls a C
      function via {ExternalReference}. The C function still outputs the
      abort reason, but does not print the stack trace. It then aborts via
      "OS::Abort", just like the runtime function.
      This will allow fuzzers to detect the crash and even find a nice error
      message.
      
      Even though this looks like a lot of code churn, it is actually not.
      Most added lines are new tests, and other changes are minimal.
      
      R=mstarzinger@chromium.org
      
      Bug: chromium:863799
      Change-Id: I77c58ff72db552d49014614436259ccfb49ba87b
      Reviewed-on: https://chromium-review.googlesource.com/1142163
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54592}
      a462a785
  4. 17 Jul, 2018 1 commit
  5. 12 Jul, 2018 1 commit
  6. 25 Jun, 2018 1 commit
  7. 16 May, 2018 1 commit
  8. 30 Apr, 2018 2 commits
  9. 09 Apr, 2018 1 commit
  10. 06 Apr, 2018 2 commits
    • Michael Achenbach's avatar
      Revert "[cleanup] Refactor the Factory" · 503e07c3
      Michael Achenbach authored
      This reverts commit f9a2e24b.
      
      Reason for revert: gc stress failures not all fixed by follow up.
      
      Original change's description:
      > [cleanup] Refactor the Factory
      > 
      > There is no good reason to have the meat of most objects' initialization
      > logic in heap.cc, all wrapped by the CALL_HEAP_FUNCTION macro. Instead,
      > this CL changes the protocol between Heap and Factory to be AllocateRaw,
      > and all object initialization work after (possibly retried) successful
      > raw allocation happens in the Factory.
      > 
      > This saves about 20KB of binary size on x64.
      > 
      > Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
      > Change-Id: Icbfdc4266d7be8b48d2fe085f03411743dc6a0ca
      > Reviewed-on: https://chromium-review.googlesource.com/959533
      > Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
      > Reviewed-by: Hannes Payer <hpayer@chromium.org>
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#52416}
      
      TBR=jkummerow@chromium.org,yangguo@chromium.org,mstarzinger@chromium.org,hpayer@chromium.org
      
      Change-Id: Idbbc53478742f3e9525eee83342afc6aedae122f
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/999414Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52420}
      503e07c3
    • Jakob Kummerow's avatar
      [cleanup] Refactor the Factory · f9a2e24b
      Jakob Kummerow authored
      There is no good reason to have the meat of most objects' initialization
      logic in heap.cc, all wrapped by the CALL_HEAP_FUNCTION macro. Instead,
      this CL changes the protocol between Heap and Factory to be AllocateRaw,
      and all object initialization work after (possibly retried) successful
      raw allocation happens in the Factory.
      
      This saves about 20KB of binary size on x64.
      
      Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
      Change-Id: Icbfdc4266d7be8b48d2fe085f03411743dc6a0ca
      Reviewed-on: https://chromium-review.googlesource.com/959533
      Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
      Reviewed-by: 's avatarHannes Payer <hpayer@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52416}
      f9a2e24b
  11. 26 Mar, 2018 1 commit
  12. 13 Mar, 2018 1 commit
  13. 01 Mar, 2018 2 commits
  14. 21 Feb, 2018 1 commit
  15. 24 Jan, 2018 1 commit
    • Michael Starzinger's avatar
      Revert "[platform] Remove {PageAllocator::kReadWriteExecute}." · db7bdf48
      Michael Starzinger authored
      This reverts commit bf19e60c.
      
      Reason for revert: Two issues discovered with W^X in V8's 6.5 branch (see v8:7272 and chromium:793428). Still need a way to disable the feature.
      
      Original change's description:
      > [platform] Remove {PageAllocator::kReadWriteExecute}.
      > 
      > Now that write-protection of code memory is enabled everywhere and V8 is
      > fully W^X compliant, we can remove the permission mode in question.
      > 
      > R=​hpayer@chromium.org
      > BUG=v8:6792
      > 
      > Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      > Change-Id: I80fe95ac6bb0e2d1ad6d993154ce45d492d941be
      > Reviewed-on: https://chromium-review.googlesource.com/866855
      > Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
      > Reviewed-by: Hannes Payer <hpayer@chromium.org>
      > Reviewed-by: Bill Budge <bbudge@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#50770}
      
      TBR=bbudge@chromium.org,mstarzinger@chromium.org,hpayer@chromium.org
      
      # Not skipping CQ checks because original CL landed > 1 day ago.
      
      Bug: v8:6792
      Change-Id: If4a205497ac83084a4092560363affb13b391462
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/883461Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Reviewed-by: 's avatarHannes Payer <hpayer@chromium.org>
      Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#50834}
      db7bdf48
  16. 22 Jan, 2018 1 commit
  17. 26 Dec, 2017 1 commit
  18. 21 Dec, 2017 1 commit
  19. 15 Dec, 2017 1 commit
    • Bill Budge's avatar
      [Memory] Create memory management API in v8::internal. · a449f09f
      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: 's avatarEric Holk <eholk@chromium.org>
      Reviewed-by: 's avatarHannes Payer <hpayer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#50139}
      a449f09f
  20. 07 Dec, 2017 1 commit
  21. 20 Nov, 2017 1 commit
  22. 15 Nov, 2017 1 commit
  23. 14 Nov, 2017 1 commit
    • Bill Budge's avatar
      Reland "[Memory] Use OS::Allocate for all OS memory allocations." · adc52af5
      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: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49363}
      adc52af5
  24. 11 Nov, 2017 1 commit
  25. 09 Nov, 2017 1 commit
    • Bill Budge's avatar
      Reland "[Memory] Use OS::Allocate for all OS memory allocations." · 4899bcb6
      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: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Commit-Queue: Bill Budge <bbudge@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49273}
      4899bcb6
  26. 08 Nov, 2017 2 commits
    • Bill Budge's avatar
      Revert "[Memory] Use OS::Allocate for all OS memory allocations." · 1ea3fd2e
      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: 's avatarBill Budge <bbudge@chromium.org>
      Commit-Queue: Bill Budge <bbudge@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49242}
      1ea3fd2e
    • Bill Budge's avatar
      [Memory] Use OS::Allocate for all OS memory allocations. · 7e78506f
      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: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarHannes Payer <hpayer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49235}
      7e78506f
  27. 18 Oct, 2017 1 commit
  28. 13 Oct, 2017 1 commit
  29. 08 Sep, 2017 1 commit
  30. 30 Aug, 2017 1 commit
  31. 28 Aug, 2017 1 commit
  32. 21 Aug, 2017 1 commit
  33. 01 Aug, 2017 1 commit
  34. 12 Jun, 2017 1 commit
  35. 30 May, 2017 1 commit