1. 04 Apr, 2019 1 commit
  2. 03 Apr, 2019 5 commits
    • Adithya Srinivasan's avatar
      Revert "Reland "[ptr-compr][x64] Temporarily enable pointer compression on x64"" · e26ec8bd
      Adithya Srinivasan authored
      This reverts commit 42beed97.
      
      Reason for revert: This commit seems to cause consistent failures in
      some ProcessMemoryMetricsEmitterTest tests on Mac and ChromeOS. I'm
      not sure what the exact reasoning behind this is. See https://crbug.com/949157.
      
      Original change's description:
      > Reland "[ptr-compr][x64] Temporarily enable pointer compression on x64"
      >
      > This is a reland of 4f051fd5
      >
      > Relanding after fixing Chromium issues.
      >
      > Original change's description:
      > > [ptr-compr][x64] Temporarily enable pointer compression on x64
      > >
      > > ... and make sure that the x64 ptr-compr bots proceed testing V8 without
      > > pointer compression in order to keep testing the full pointer mode.
      > >
      > > Bug: v8:7703
      > > Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng,v8_linux64_tsan_rel
      > > Change-Id: Iee725deda813425a6f0722948b54976154f50909
      > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1497139
      > > Reviewed-by: Michael Hablich <hablich@chromium.org>
      > > Reviewed-by: Michael Achenbach <machenbach@chromium.org>
      > > Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#60230}
      >
      > Bug: v8:7703
      > Change-Id: Ic2d1c2ae41ec645f34963f5f561c33199c72ef4b
      > Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng,v8_linux64_tsan_rel
      > Cq-Include-Trybots: luci.chromium.try:fuchsia_x64,linux-rel
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1535819
      > Commit-Queue: Igor Sheludko <ishell@chromium.org>
      > Reviewed-by: Michael Achenbach <machenbach@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#60582}
      
      TBR=machenbach@chromium.org,hablich@chromium.org,leszeks@chromium.org,ishell@chromium.org,verwaest@chromium.org
      
      Change-Id: Ib9737081e90dddcfe44af9da1275a610da209323
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:7703
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1550709
      Commit-Queue: Igor Sheludko <ishell@chromium.org>
      Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60618}
      e26ec8bd
    • Z Duong Nguyen-Huu's avatar
      Port Proxy.revocable to Torque · 253ce6e1
      Z Duong Nguyen-Huu authored
      This is a part of porting Proxy-related builtins to Torque.
      
      Spec: https://tc39.github.io/ecma262/#sec-proxy.revocable
      Bug: v8:6664
      Change-Id: I5f53eb4dff8ff9d3156b601652f3f86ede25fc1d
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1529261
      Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com>
      Reviewed-by: 's avatarMaya Lekova <mslekova@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60613}
      253ce6e1
    • Clemens Hammacher's avatar
      [wasm][gc] Make import wrapper cache keep WasmCode alive · 433de3ff
      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: 's avatarBen Titzer <titzer@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60588}
      433de3ff
    • Igor Sheludko's avatar
      Reland "[ptr-compr][x64] Temporarily enable pointer compression on x64" · 42beed97
      Igor Sheludko authored
      This is a reland of 4f051fd5
      
      Relanding after fixing Chromium issues.
      
      Original change's description:
      > [ptr-compr][x64] Temporarily enable pointer compression on x64
      >
      > ... and make sure that the x64 ptr-compr bots proceed testing V8 without
      > pointer compression in order to keep testing the full pointer mode.
      >
      > Bug: v8:7703
      > Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng,v8_linux64_tsan_rel
      > Change-Id: Iee725deda813425a6f0722948b54976154f50909
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1497139
      > Reviewed-by: Michael Hablich <hablich@chromium.org>
      > Reviewed-by: Michael Achenbach <machenbach@chromium.org>
      > Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#60230}
      
      Bug: v8:7703
      Change-Id: Ic2d1c2ae41ec645f34963f5f561c33199c72ef4b
      Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng,v8_linux64_tsan_rel
      Cq-Include-Trybots: luci.chromium.try:fuchsia_x64,linux-rel
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1535819
      Commit-Queue: Igor Sheludko <ishell@chromium.org>
      Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60582}
      42beed97
    • Paolo Severini's avatar
      Reland "V8 x64 backend doesn't emit ABI compliant stack frames" · 969cb0c7
      Paolo Severini authored
      This is a reland of 3cda21de
      
      Original change's description:
      > V8 x64 backend doesn't emit ABI compliant stack frames
      > 
      > On 64 bit Windows, the OS stack walking does not work because the V8 x64
      > backend doesn't emit unwinding info and also because it doesn't emit ABI
      > compliant stack frames. See
      > https://docs.google.com/document/d/1-wf50jFlii0c_Pr52lm2ZU-49m220nhYMrHDi3vXnh0/edit
      > for more details.
      > 
      > This problem can be fixed by observing that V8 frames usually all have the same
      > prolog and epilog:
      > 
      > push rbp,
      > mov rbp, rsp
      > ...
      > pop rbp
      > ret N
      > 
      > and that it is possible to define XDATA (UNWIND_CODEs) that specify how Windows
      > should walk through V8 frames. Furthermore, since V8 Code objects are all
      > allocated in the same code-range for an Isolate, it is possible to register a
      > single PDATA/XDATA entry to cover stack walking for all the code generated
      > inside that code-range.
      > 
      > This PR contains changes required to enable stack walking on Win64:
      > 
      > EmbeddedFileWriter now adds assembler directives to the builtins
      > snapshot source file (embedded.cc) to emit additional entries in the .pdata and
      > in the .xdata section of the V8 executable. This takes care of stack walking
      > for embedded builtins. (The case of non-embedded builtins is not supported).
      > The x64 Assembler has been modified to collect the information required to emit
      > this unwind info for builtins.
      > 
      > Stack walking for jitted code is handled is Isolate.cpp, by registering
      > dynamically PDATA/XDATA for the whole code-range address space every time a new
      > Isolate is initialized, and by unregistering them when the Isolate is
      > destroyed.
      > 
      > Stack walking for WASM jitted code is handled is the same way in
      > wasm::NativeModule (wasm/wasm-code-manager.cpp).
      > 
      > It is important to note that Crashpad and Breakpad are already registering
      > PDATA/XDATA to manage and report unhandled exceptions (but not for embedded
      > builtins). Since it is not possible to register multiple PDATA entries for the
      > same address range, a new function is added to the V8 API:
      > SetUnhandledExceptionCallback() can be used by an embedder to register its own
      > unhandled exception handler for exceptions that arise in v8-generated code.
      > V8 embedders should be modified accordingly (code for this is in a separate PR
      > in the Chromium repository:
      > https://chromium-review.googlesource.com/c/chromium/src/+/1474703).
      > 
      > All these changes are experimental, behind:
      > 
      > the 'v8_win64_unwinding_info' build flag, and
      > the '--win64-unwinding-info' runtime flag.
      > 
      > Bug: v8:3598
      > Change-Id: Iea455ab6d0e2bf1c556aa1cf870841d44ab6e4b1
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1469329
      > 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@{#60330}
      
      Bug: v8:3598
      Change-Id: If988baf7d3e4af165b919d6e54c1ad985f8e25e3
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1534618Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Commit-Queue: Paolo Severini <paolosev@microsoft.com>
      Cr-Commit-Position: refs/heads/master@{#60581}
      969cb0c7
  3. 02 Apr, 2019 2 commits
    • Tobias Tebbi's avatar
      Revert "Reland^2 "[build] disable C++ optimization for mksnapshot code."" · 5f58a82b
      Tobias Tebbi authored
      This reverts commit 6beea97e.
      
      Reason for revert: https://crbug.com/942497
      
      Original change's description:
      > Reland^2 "[build] disable C++ optimization for mksnapshot code."
      >
      > This is a reland of a6b95a6a
      >
      > In addition to UBSan, also ASAN needs optimizations.
      > So this CL doesn't disable optimizations for all sanitizer builds.
      >
      > Original change's description:
      > > Reland "[build] disable C++ optimization for mksnapshot code."
      > >
      > > This is a reland of cee2f772
      > >
      > > Original change's description:
      > > > [build] disable C++ optimization for mksnapshot code.
      > > >
      > > > By disabling C++ optimizations for code that's only run in mksnapshot,
      > > > that is, CSA and Torque-generated code, we can save compile time.
      > > > I observed up to 2x improvements of compile time for some files,
      > > > while the mksnapshot time did not increase significantly.
      > > >
      > > > Bug: v8:7629
      > > > Change-Id: I96be2966611b2471b68023e0dd9e351d94f0013c
      > > > Reviewed-on: https://chromium-review.googlesource.com/c/1460941
      > > > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > > > Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
      > > > Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
      > > > Cr-Commit-Position: refs/heads/master@{#59585}
      > >
      > > Bug: v8:7629
      > > Change-Id: I8330f93173ab3d7b400e15ea4935bbe8256b250f
      > > Reviewed-on: https://chromium-review.googlesource.com/c/1473292
      > > Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
      > > Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
      > > Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#59606}
      >
      > Bug: v8:7629
      > Change-Id: I42175c472d8e41345573df81645dfe3accc9d8c4
      > Reviewed-on: https://chromium-review.googlesource.com/c/1475396
      > Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
      > Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#59632}
      
      TBR=yangguo@chromium.org,sigurds@chromium.org,tebbi@chromium.org
      
      # Not skipping CQ checks because original CL landed > 1 day ago.
      
      Bug: v8:7629 chromium:942497
      Change-Id: Ie51d7b53440230b41fb763541908cb1162d8850d
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1549158
      Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
      Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
      Reviewed-by: 's avatarSigurd Schneider <sigurds@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60577}
      5f58a82b
    • Peter Marshall's avatar
      [tracing] Fix build for use_perfetto config · a18dd6e1
      Peter Marshall authored
      Autoroller updated protobuf which has some different files now.
      
      Change-Id: If3b2f6452d30e754504e8798de5adb8706371cb5
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1547866
      Auto-Submit: Peter Marshall <petermarshall@chromium.org>
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60571}
      a18dd6e1
  4. 28 Mar, 2019 5 commits
  5. 27 Mar, 2019 1 commit
  6. 26 Mar, 2019 1 commit
  7. 25 Mar, 2019 2 commits
  8. 22 Mar, 2019 1 commit
  9. 21 Mar, 2019 2 commits
    • Michael Achenbach's avatar
      Revert "Reland "[ptr-compr][x64] Temporarily enable pointer compression on x64"" · f936fb42
      Michael Achenbach authored
      This reverts commit 7b896836.
      
      Reason for revert: Lots of test failures on current roll:
      https://chromium-review.googlesource.com/c/chromium/src/+/1534141
      
      Original change's description:
      > Reland "[ptr-compr][x64] Temporarily enable pointer compression on x64"
      > 
      > This is a reland of 4f051fd5
      > 
      > Relanding because last revert was caused by unrelated flakes.
      > 
      > Original change's description:
      > > [ptr-compr][x64] Temporarily enable pointer compression on x64
      > >
      > > ... and make sure that the x64 ptr-compr bots proceed testing V8 without
      > > pointer compression in order to keep testing the full pointer mode.
      > >
      > > Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng,v8_linux64_tsan_rel
      > > Bug: v8:7703
      > > Change-Id: Ied4e7bacf99c9d63e0459613fec522273f595de8
      > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1523327
      > > Commit-Queue: Igor Sheludko <ishell@chromium.org>
      > > Auto-Submit: Leszek Swirski <leszeks@chromium.org>
      > > Reviewed-by: Michael Achenbach <machenbach@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#60339}
      > 
      > Bug: v8:7703
      > Change-Id: I9c588de77070d4fbf1bb1a21ae58c398a22eed9c
      > Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng, v8_linux64_tsan_rel, v8_mac64_gc_stress_dbg
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1530819
      > Commit-Queue: Igor Sheludko <ishell@chromium.org>
      > Reviewed-by: Michael Achenbach <machenbach@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#60370}
      
      TBR=machenbach@chromium.org,ishell@chromium.org
      
      # Not skipping CQ checks because original CL landed > 1 day ago.
      
      Bug: v8:7703
      Change-Id: I1c037470b5895c4269c9574e6c93d0eed6fe90d5
      Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng, v8_linux64_tsan_rel, v8_mac64_gc_stress_dbg
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1533867Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60397}
      f936fb42
    • Cliff Smolinsky's avatar
      Delayload shlwapi · 02c06b10
      Cliff Smolinsky authored
      V8_libbase.dll, in a component build where the dll is created,
      statically links against shlwapi.dll. Shlwapi is only needed for a
      single use within the debug stacktrace code and is therefore not needed
      in most cases. Statically loading shlwapi also brings in user32.dll and
      gdi32.dll, so this is a decent perf hit which is generally unnecessary.
      This changes delayloads shlwapi so that is only loaded when actually
      used.
      
      Bug: v8:9024
      Change-Id: Ib8842893a43cde4b1110a333ae07d861088ba829
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1533145Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Commit-Queue: Cliff Smolinsky <cliffsmo@microsoft.com>
      Cr-Commit-Position: refs/heads/master@{#60394}
      02c06b10
  10. 20 Mar, 2019 4 commits
    • Leszek Swirski's avatar
      Revert "V8 x64 backend doesn't emit ABI compliant stack frames" · 9f6ddb48
      Leszek Swirski authored
      This reverts commit 3cda21de.
      
      Reason for revert: Breaks the roll on Windows (see https://cr-buildbucket.appspot.com/build/8918477701097622400)
      
      Original change's description:
      > V8 x64 backend doesn't emit ABI compliant stack frames
      > 
      > On 64 bit Windows, the OS stack walking does not work because the V8 x64
      > backend doesn't emit unwinding info and also because it doesn't emit ABI
      > compliant stack frames. See
      > https://docs.google.com/document/d/1-wf50jFlii0c_Pr52lm2ZU-49m220nhYMrHDi3vXnh0/edit
      > for more details.
      > 
      > This problem can be fixed by observing that V8 frames usually all have the same
      > prolog and epilog:
      > 
      > push rbp,
      > mov rbp, rsp
      > ...
      > pop rbp
      > ret N
      > 
      > and that it is possible to define XDATA (UNWIND_CODEs) that specify how Windows
      > should walk through V8 frames. Furthermore, since V8 Code objects are all
      > allocated in the same code-range for an Isolate, it is possible to register a
      > single PDATA/XDATA entry to cover stack walking for all the code generated
      > inside that code-range.
      > 
      > This PR contains changes required to enable stack walking on Win64:
      > 
      > EmbeddedFileWriter now adds assembler directives to the builtins
      > snapshot source file (embedded.cc) to emit additional entries in the .pdata and
      > in the .xdata section of the V8 executable. This takes care of stack walking
      > for embedded builtins. (The case of non-embedded builtins is not supported).
      > The x64 Assembler has been modified to collect the information required to emit
      > this unwind info for builtins.
      > 
      > Stack walking for jitted code is handled is Isolate.cpp, by registering
      > dynamically PDATA/XDATA for the whole code-range address space every time a new
      > Isolate is initialized, and by unregistering them when the Isolate is
      > destroyed.
      > 
      > Stack walking for WASM jitted code is handled is the same way in
      > wasm::NativeModule (wasm/wasm-code-manager.cpp).
      > 
      > It is important to note that Crashpad and Breakpad are already registering
      > PDATA/XDATA to manage and report unhandled exceptions (but not for embedded
      > builtins). Since it is not possible to register multiple PDATA entries for the
      > same address range, a new function is added to the V8 API:
      > SetUnhandledExceptionCallback() can be used by an embedder to register its own
      > unhandled exception handler for exceptions that arise in v8-generated code.
      > V8 embedders should be modified accordingly (code for this is in a separate PR
      > in the Chromium repository:
      > https://chromium-review.googlesource.com/c/chromium/src/+/1474703).
      > 
      > All these changes are experimental, behind:
      > 
      > the 'v8_win64_unwinding_info' build flag, and
      > the '--win64-unwinding-info' runtime flag.
      > 
      > Bug: v8:3598
      > Change-Id: Iea455ab6d0e2bf1c556aa1cf870841d44ab6e4b1
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1469329
      > 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@{#60330}
      
      TBR=bbudge@chromium.org,ulan@chromium.org,mvstanton@chromium.org,mstarzinger@chromium.org,gdeepti@chromium.org,jgruber@chromium.org,paolosev@microsoft.com
      
      Change-Id: If8470da94c58df8c800cbe8887f9f86236e43353
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:3598
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1532321Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60372}
      9f6ddb48
    • Igor Sheludko's avatar
      Reland "[ptr-compr][x64] Temporarily enable pointer compression on x64" · 7b896836
      Igor Sheludko authored
      This is a reland of 4f051fd5
      
      Relanding because last revert was caused by unrelated flakes.
      
      Original change's description:
      > [ptr-compr][x64] Temporarily enable pointer compression on x64
      >
      > ... and make sure that the x64 ptr-compr bots proceed testing V8 without
      > pointer compression in order to keep testing the full pointer mode.
      >
      > Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng,v8_linux64_tsan_rel
      > Bug: v8:7703
      > Change-Id: Ied4e7bacf99c9d63e0459613fec522273f595de8
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1523327
      > Commit-Queue: Igor Sheludko <ishell@chromium.org>
      > Auto-Submit: Leszek Swirski <leszeks@chromium.org>
      > Reviewed-by: Michael Achenbach <machenbach@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#60339}
      
      Bug: v8:7703
      Change-Id: I9c588de77070d4fbf1bb1a21ae58c398a22eed9c
      Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng, v8_linux64_tsan_rel, v8_mac64_gc_stress_dbg
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1530819
      Commit-Queue: Igor Sheludko <ishell@chromium.org>
      Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60370}
      7b896836
    • Michael Lippautz's avatar
      profiler: Provide raw heap snapshots · 73c62c84
      Michael Lippautz authored
      Omit user roots when raw heap snapshots are used, i.e., when
      the gn flag v8_enable_raw_heap_snapshots is enabled. For regular
      Chrome production builds this is not the case.
      
      Blink CL: https://crrev.com/c/1529096
      
      Bug: chromium:936797
      Change-Id: I5ae0ec1ecfab9a76352d8ce927d1c40e707262cc
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1528994
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarAlexei Filippov <alph@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60351}
      73c62c84
    • Tom Anderson's avatar
      Fix V8 snapshot build for 32-bit Win/cross · 701eb086
      Tom Anderson authored
      This CL includes a revert of [1] with thakis@'s proposed fix at [2].  Verified a
      build with the below gn args works on Linux:
      
      target_os = "win"
      target_cpu = "x86"
      is_debug = false
      is_official_build = true
      is_component_build = false
      use_goma = true
      enable_nacl = false
      use_custom_libcxx = true
      
      [1] https://chromium.googlesource.com/v8/v8.git/+/93ee541417b6f5904072c0ecdfc6fc041811b489
      [2] https://bugs.chromium.org/p/chromium/issues/detail?id=942347#c2
      
      BUG=chromium:942347
      R=machenbach
      CC=thakis
      
      Change-Id: I34f5744a9f600efbc075f4b5ba8d1c66bff46ae6
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1529250
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Auto-Submit: Thomas Anderson <thomasanderson@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60349}
      701eb086
  11. 19 Mar, 2019 4 commits
    • Deepti Gandluri's avatar
      Revert "Reland "[ptr-compr][x64] Temporarily enable pointer compression on x64"" · 979b3a33
      Deepti Gandluri authored
      This reverts commit 4f051fd5.
      
      Reason for revert: Fails with custom snapshot on GC stress - https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20GC%20Stress%20-%20custom%20snapshot/24855
      
      Original change's description:
      > Reland "[ptr-compr][x64] Temporarily enable pointer compression on x64"
      > 
      > This is a reland of 589d1a6b
      > 
      > Relanding after fixing TSan and UBSan issues.
      > 
      > Original change's description:
      > > [ptr-compr][x64] Temporarily enable pointer compression on x64
      > >
      > > ... and make sure that the x64 ptr-compr bots proceed testing V8 without
      > > pointer compression in order to keep testing the full pointer mode.
      > >
      > > Bug: v8:7703
      > > Change-Id: Iee725deda813425a6f0722948b54976154f50909
      > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1497139
      > > Reviewed-by: Michael Hablich <hablich@chromium.org>
      > > Reviewed-by: Michael Achenbach <machenbach@chromium.org>
      > > Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#60230}
      > 
      > Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng,v8_linux64_tsan_rel
      > Bug: v8:7703
      > Change-Id: Ied4e7bacf99c9d63e0459613fec522273f595de8
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1523327
      > Commit-Queue: Igor Sheludko <ishell@chromium.org>
      > Auto-Submit: Leszek Swirski <leszeks@chromium.org>
      > Reviewed-by: Michael Achenbach <machenbach@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#60339}
      
      TBR=machenbach@chromium.org,hablich@chromium.org,leszeks@chromium.org,ishell@chromium.org,verwaest@chromium.org
      
      Change-Id: Ia06829e9dfdf09501ceebc0eef175d3261969d1f
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:7703
      Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng, v8_linux64_tsan_rel
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1531120Reviewed-by: 's avatarDeepti Gandluri <gdeepti@chromium.org>
      Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60340}
      979b3a33
    • Igor Sheludko's avatar
      Reland "[ptr-compr][x64] Temporarily enable pointer compression on x64" · 4f051fd5
      Igor Sheludko authored
      This is a reland of 589d1a6b
      
      Relanding after fixing TSan and UBSan issues.
      
      Original change's description:
      > [ptr-compr][x64] Temporarily enable pointer compression on x64
      >
      > ... and make sure that the x64 ptr-compr bots proceed testing V8 without
      > pointer compression in order to keep testing the full pointer mode.
      >
      > Bug: v8:7703
      > Change-Id: Iee725deda813425a6f0722948b54976154f50909
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1497139
      > Reviewed-by: Michael Hablich <hablich@chromium.org>
      > Reviewed-by: Michael Achenbach <machenbach@chromium.org>
      > Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#60230}
      
      Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng,v8_linux64_tsan_rel
      Bug: v8:7703
      Change-Id: Ied4e7bacf99c9d63e0459613fec522273f595de8
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1523327
      Commit-Queue: Igor Sheludko <ishell@chromium.org>
      Auto-Submit: Leszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60339}
      4f051fd5
    • Paolo Severini's avatar
      V8 x64 backend doesn't emit ABI compliant stack frames · 3cda21de
      Paolo Severini authored
      On 64 bit Windows, the OS stack walking does not work because the V8 x64
      backend doesn't emit unwinding info and also because it doesn't emit ABI
      compliant stack frames. See
      https://docs.google.com/document/d/1-wf50jFlii0c_Pr52lm2ZU-49m220nhYMrHDi3vXnh0/edit
      for more details.
      
      This problem can be fixed by observing that V8 frames usually all have the same
      prolog and epilog:
      
      push rbp,
      mov rbp, rsp
      ...
      pop rbp
      ret N
      
      and that it is possible to define XDATA (UNWIND_CODEs) that specify how Windows
      should walk through V8 frames. Furthermore, since V8 Code objects are all
      allocated in the same code-range for an Isolate, it is possible to register a
      single PDATA/XDATA entry to cover stack walking for all the code generated
      inside that code-range.
      
      This PR contains changes required to enable stack walking on Win64:
      
      EmbeddedFileWriter now adds assembler directives to the builtins
      snapshot source file (embedded.cc) to emit additional entries in the .pdata and
      in the .xdata section of the V8 executable. This takes care of stack walking
      for embedded builtins. (The case of non-embedded builtins is not supported).
      The x64 Assembler has been modified to collect the information required to emit
      this unwind info for builtins.
      
      Stack walking for jitted code is handled is Isolate.cpp, by registering
      dynamically PDATA/XDATA for the whole code-range address space every time a new
      Isolate is initialized, and by unregistering them when the Isolate is
      destroyed.
      
      Stack walking for WASM jitted code is handled is the same way in
      wasm::NativeModule (wasm/wasm-code-manager.cpp).
      
      It is important to note that Crashpad and Breakpad are already registering
      PDATA/XDATA to manage and report unhandled exceptions (but not for embedded
      builtins). Since it is not possible to register multiple PDATA entries for the
      same address range, a new function is added to the V8 API:
      SetUnhandledExceptionCallback() can be used by an embedder to register its own
      unhandled exception handler for exceptions that arise in v8-generated code.
      V8 embedders should be modified accordingly (code for this is in a separate PR
      in the Chromium repository:
      https://chromium-review.googlesource.com/c/chromium/src/+/1474703).
      
      All these changes are experimental, behind:
      
      the 'v8_win64_unwinding_info' build flag, and
      the '--win64-unwinding-info' runtime flag.
      
      Bug: v8:3598
      Change-Id: Iea455ab6d0e2bf1c556aa1cf870841d44ab6e4b1
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1469329Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Commit-Queue: Paolo Severini <paolosev@microsoft.com>
      Cr-Commit-Position: refs/heads/master@{#60330}
      3cda21de
    • Peter Marshall's avatar
      [platform] Implement delayed tasks in the default worker runner · da66158f
      Peter Marshall authored
      This was unimplemented but is needed for Perfetto which posts delayed
      tasks on worker threads e.g. drain the trace buffer into a file every x
      seconds.
      
      This is implemented by adding a second queue which holds the delayed
      tasks in chronological order of 'next-to-execute'. We use an
      std::multimap for the queue so that we can easily get the next delayed
      task with begin().
      
      The implementation will move delayed tasks into the main task queue
      when their deadline expires.
      
      Drive-by cleanup of the runner destructor which can just use = default.
      
      Bug: v8:8339
      
      Change-Id: I3629c5d6e15ced2fc47eb1b7519a2dbbf8461fce
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1521114
      Commit-Queue: Peter Marshall <petermarshall@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60320}
      da66158f
  12. 18 Mar, 2019 3 commits
  13. 14 Mar, 2019 5 commits
  14. 08 Mar, 2019 3 commits
  15. 06 Mar, 2019 1 commit