1. 01 Jun, 2021 2 commits
  2. 10 May, 2021 1 commit
  3. 17 Feb, 2021 1 commit
  4. 15 Jan, 2021 2 commits
  5. 26 Nov, 2020 1 commit
  6. 23 Jun, 2020 1 commit
  7. 09 Jun, 2020 1 commit
  8. 03 Jun, 2020 1 commit
  9. 02 Jun, 2020 1 commit
    • Clemens Backes's avatar
      [wasm][debug] Support multi-threaded breakpoints · 5fcb414a
      Clemens Backes authored
      This adds support for multiple isolates sharing the same module but
      setting different breakpoints. This is simulated by having a debugger
      test that runs in the "--isolates" variant, i.e. two isolates running
      the same test at the same time. Both isolates will set and remove
      breakpoints.
      
      The DebugInfo will keep a separate list of breakpoints per isolate, and
      when recompiling a function for debugging it will respect all
      breakpoints in all isolates.
      In order to ensure consistency if multiple isolates are setting or
      removing breakpoints simultaneously, we go back to a more coarse-grained
      locking scheme, where the DebugInfo lock is held while re-compiling
      Liftoff functions.
      
      While recompilation will install the code in the module-global code
      table and jump table (and hence all isolates will use it for future
      calls), only the stack of the requesting isolate is rewritten to
      immediately use new code. This is OK, because other isolates are not
      interested in the new breakpoint(s) anyway.
      On {SetBreakpoint}, we always need to rewrite the stack of the
      requesting isolate though, even if the breakpoint was set before by
      another isolate.
      
      Drive-by: Some fixes in SharedFunctionInfo in order to support setting
      breakpoints via the Debug mirror.
      
      R=thibaudm@chromium.org
      
      Bug: v8:10359
      Change-Id: If659afb273260fc5e8124b4b617fb4322de473c7
      Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel
      Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_isolates_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2218059Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarThibaud Michaud <thibaudm@chromium.org>
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#68096}
      5fcb414a
  10. 28 May, 2020 1 commit
    • Clemens Backes's avatar
      [wasm][debug] Support multi-threaded stepping · 97434791
      Clemens Backes authored
      Instead of keeping a single {stepping_frame_} per native module, we now
      keep one frame id per isolate. Hence, each isolate can step through a
      different frame, independent of other isolates.
      The on-stack-replacement of the stepping frame already works on a
      per-isolate basis, since we only replace the return address of a single
      frame, part of the isolate that requested stepping.
      
      The new test (which also executes in a variant with two concurrent
      isolates) revealed some more data races to fix.
      
      R=thibaudm@chromium.org
      
      Bug: v8:10359
      Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel
      Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_isolates_rel_ng
      Change-Id: I0bb013737162bd09b9f4be9c08990bca7bf736ac
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2214838Reviewed-by: 's avatarThibaud Michaud <thibaudm@chromium.org>
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#68045}
      97434791
  11. 19 May, 2020 3 commits
    • Clemens Backes's avatar
      Reland "[wasm][debug] Fix tier down during streaming compilation" · 18ac08d0
      Clemens Backes authored
      This is a reland of 3cc981cb with a
      fix for data race detected by TSan.
      
      Original change's description:
      > [wasm][debug] Fix tier down during streaming compilation
      >
      > If the debugger is enabled while streaming compilation is happening, we
      > won't correctly tier down to Liftoff. This is because during streaming
      > compilation, we always compile for no debugging. Fixing that is a bit
      > tricky, since when the debugger is enabled, functions can either already
      > have finished compiling, or they are currently being compiled, or their
      > wire bytes are not received yet.
      > Instead of handling this correctly while streaming compilation is
      > running, we just recompile the whole module with Liftoff after streaming
      > compilation finished.
      >
      > For testing this, we use the existing tests for async compilation, and
      > enable --wasm-test-streaming, which compiles via the streaming decoder
      > even in the async compilation case.
      >
      > R=thibaudm@chromium.org
      >
      > Bug: v8:10531
      > Change-Id: I0177248a9ad2e90f83faee965d6746de05423f1f
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2207133
      > Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
      > Commit-Queue: Clemens Backes <clemensb@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#67882}
      
      Bug: v8:10531, v8:10544
      Change-Id: I884922b6ac55543e6ff9b1046438f6b3abab6f64
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2207187Reviewed-by: 's avatarThibaud Michaud <thibaudm@chromium.org>
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67896}
      18ac08d0
    • Clemens Backes's avatar
      Revert "[wasm][debug] Fix tier down during streaming compilation" · 8d3cca97
      Clemens Backes authored
      This reverts commit 3cc981cb.
      
      Reason for revert: TSan failures: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20TSAN/31572
      
      Original change's description:
      > [wasm][debug] Fix tier down during streaming compilation
      > 
      > If the debugger is enabled while streaming compilation is happening, we
      > won't correctly tier down to Liftoff. This is because during streaming
      > compilation, we always compile for no debugging. Fixing that is a bit
      > tricky, since when the debugger is enabled, functions can either already
      > have finished compiling, or they are currently being compiled, or their
      > wire bytes are not received yet.
      > Instead of handling this correctly while streaming compilation is
      > running, we just recompile the whole module with Liftoff after streaming
      > compilation finished.
      > 
      > For testing this, we use the existing tests for async compilation, and
      > enable --wasm-test-streaming, which compiles via the streaming decoder
      > even in the async compilation case.
      > 
      > R=​thibaudm@chromium.org
      > 
      > Bug: v8:10531
      > Change-Id: I0177248a9ad2e90f83faee965d6746de05423f1f
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2207133
      > Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
      > Commit-Queue: Clemens Backes <clemensb@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#67882}
      
      TBR=clemensb@chromium.org,thibaudm@chromium.org
      
      Change-Id: I26e750c6c6d0783b5e4a0f19a5462a5fbe99a742
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:10531
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2207186Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67885}
      8d3cca97
    • Clemens Backes's avatar
      [wasm][debug] Fix tier down during streaming compilation · 3cc981cb
      Clemens Backes authored
      If the debugger is enabled while streaming compilation is happening, we
      won't correctly tier down to Liftoff. This is because during streaming
      compilation, we always compile for no debugging. Fixing that is a bit
      tricky, since when the debugger is enabled, functions can either already
      have finished compiling, or they are currently being compiled, or their
      wire bytes are not received yet.
      Instead of handling this correctly while streaming compilation is
      running, we just recompile the whole module with Liftoff after streaming
      compilation finished.
      
      For testing this, we use the existing tests for async compilation, and
      enable --wasm-test-streaming, which compiles via the streaming decoder
      even in the async compilation case.
      
      R=thibaudm@chromium.org
      
      Bug: v8:10531
      Change-Id: I0177248a9ad2e90f83faee965d6746de05423f1f
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2207133Reviewed-by: 's avatarThibaud Michaud <thibaudm@chromium.org>
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67882}
      3cc981cb
  12. 18 May, 2020 1 commit
  13. 12 May, 2020 1 commit
    • Clemens Backes's avatar
      Reland "[wasm][debug] Fix tier down for multiple isolates" · e62a7f76
      Clemens Backes authored
      This is a reland of 902f48bd, fixed
      to avoid lock inversion problems detected by TSan.
      
      Original change's description:
      > [wasm][debug] Fix tier down for multiple isolates
      >
      > If multiple isolates are using the same module, we need to keep it
      > tiered down as long as any isolate still has a debugger open.
      > Also, we cannot short-cut the {NativeModule::TierDown} method, since the
      > previously triggered tier down might not have finished yet.
      > For now, each isolate starts an independent tier down (i.e. a full
      > recompilation). We could optimize this later by skipping functions that
      > are already tiered down, or are already scheduled for tier down, but we
      > still need to wait for tier-down to finish on each isolate.
      >
      > R=thibaudm@chromium.org
      >
      > Bug: v8:10359
      > Change-Id: I7ea6a6f5d3977e48718ac5bc94f9831541f6173f
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2190758
      > Commit-Queue: Clemens Backes <clemensb@chromium.org>
      > Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#67716}
      
      Bug: v8:10359
      Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel
      Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_isolates_rel_ng
      Change-Id: Ie98cf073fc79e5c6991df6d4466de7b560274070
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2194451
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Reviewed-by: 's avatarThibaud Michaud <thibaudm@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67754}
      e62a7f76
  14. 11 May, 2020 2 commits
    • Shu-yu Guo's avatar
      Revert "[wasm][debug] Fix tier down for multiple isolates" · 131fa2c9
      Shu-yu Guo authored
      This reverts commit 902f48bd.
      
      Reason for revert: Made TSAN unhappy: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20TSAN%20-%20isolates/9480
      
      Original change's description:
      > [wasm][debug] Fix tier down for multiple isolates
      > 
      > If multiple isolates are using the same module, we need to keep it
      > tiered down as long as any isolate still has a debugger open.
      > Also, we cannot short-cut the {NativeModule::TierDown} method, since the
      > previously triggered tier down might not have finished yet.
      > For now, each isolate starts an independent tier down (i.e. a full
      > recompilation). We could optimize this later by skipping functions that
      > are already tiered down, or are already scheduled for tier down, but we
      > still need to wait for tier-down to finish on each isolate.
      > 
      > R=​thibaudm@chromium.org
      > 
      > Bug: v8:10359
      > Change-Id: I7ea6a6f5d3977e48718ac5bc94f9831541f6173f
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2190758
      > Commit-Queue: Clemens Backes <clemensb@chromium.org>
      > Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#67716}
      
      TBR=clemensb@chromium.org,thibaudm@chromium.org
      
      Change-Id: Ibf650e8b6143471b44f2822c1737e7de5f8bdb20
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:10359
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2194372Reviewed-by: 's avatarShu-yu Guo <syg@chromium.org>
      Commit-Queue: Shu-yu Guo <syg@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67720}
      131fa2c9
    • Clemens Backes's avatar
      [wasm][debug] Fix tier down for multiple isolates · 902f48bd
      Clemens Backes authored
      If multiple isolates are using the same module, we need to keep it
      tiered down as long as any isolate still has a debugger open.
      Also, we cannot short-cut the {NativeModule::TierDown} method, since the
      previously triggered tier down might not have finished yet.
      For now, each isolate starts an independent tier down (i.e. a full
      recompilation). We could optimize this later by skipping functions that
      are already tiered down, or are already scheduled for tier down, but we
      still need to wait for tier-down to finish on each isolate.
      
      R=thibaudm@chromium.org
      
      Bug: v8:10359
      Change-Id: I7ea6a6f5d3977e48718ac5bc94f9831541f6173f
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2190758
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Reviewed-by: 's avatarThibaud Michaud <thibaudm@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67716}
      902f48bd
  15. 15 Apr, 2020 1 commit
  16. 14 Apr, 2020 1 commit
    • Clemens Backes's avatar
      [wasm] Store whether code was generated for debugging · 4721585b
      Clemens Backes authored
      This adds a flag to {WasmCode} objects to store whether this code was
      generated for debugging. This flag can be set for Liftoff code (in which
      case the code will e.g. have an extended prologue for debugging), but it
      can also be set for TurboFan, in case Liftoff bailed out when producing
      the debugging code.
      
      Having this flag allows us to remove the hack to pass the compilation
      results to {OnFinishedUnits} just to check whether we actually wanted to
      compile Liftoff functions.
      
      Drive-by: Replace the {ReachedRecompilationTierField} by a
      {MissingRecompilationField}, because all we need to know is if we are
      still waiting for that function to get recompiled.
      
      R=ahaas@chromium.org
      
      Bug: v8:10330,v8:10410
      Change-Id: Ia023df8955a60d9f5595a6cb2737e14d83baf716
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2142259
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67119}
      4721585b
  17. 09 Mar, 2020 1 commit
  18. 18 Feb, 2020 1 commit
  19. 06 Feb, 2020 1 commit
    • Z Nguyen-Huu's avatar
      Reland "[wasm] Tierdown wasm module upon "Debugger.enable"" · 1f7861c8
      Z Nguyen-Huu authored
      This is a reland of 410ca4c5
      
      Skip new test for unsupported liftoff architecture.
      Previously, if there is some unsupported liftoff functions, it fall
      through Turbofan but recompilation didn't catch and count it. This CL
      fixes it by using requested_tier on finished units.
      
      Avoid to tier down asm.js.
      Introduce reached recompilation tier to monitor recompilation progress.
      
      Original change's description:
      > [wasm] Tierdown wasm module upon "Debugger.enable"
      >
      > Put a logic in Wasm Engine to tier down all existing modules per isolate
      > when debugger is enabled. This CL does not handle new module added after
      > debugger is enabled yet.
      >
      > Bug: v8:9654
      > Change-Id: I87060f5c416506543fcaf231bff9999d06ba4c0d
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2013692
      > Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com>
      > Reviewed-by: Simon Zünd <szuend@chromium.org>
      > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
      > Reviewed-by: Clemens Backes <clemensb@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#66017}
      
      TBR=szuend@chromium.org,bmeurer@chromium.org
      
      Bug: v8:9654
      Change-Id: I6014ae52d1e04726e64ee9267c5ce559090414d7
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2031744
      Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com>
      Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#66164}
      1f7861c8
  20. 30 Jan, 2020 1 commit
    • Eric Leese's avatar
      Revert "[wasm] Tierdown wasm module upon "Debugger.enable"" · fb96381b
      Eric Leese authored
      This reverts commit 410ca4c5.
      
      Reason for revert: This was causing Chrome to hang when debugging large wasm binaries.
      
      Clean revert except for modification to test/debugger/debugger.status
      
      Bug: chromium:1047210, v8:9654
      
      Original change's description:
      > [wasm] Tierdown wasm module upon "Debugger.enable"
      >
      > Put a logic in Wasm Engine to tier down all existing modules per isolate
      > when debugger is enabled. This CL does not handle new module added after
      > debugger is enabled yet.
      >
      > Bug: v8:9654
      > Change-Id: I87060f5c416506543fcaf231bff9999d06ba4c0d
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2013692
      > Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com>
      > Reviewed-by: Simon Zünd <szuend@chromium.org>
      > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
      > Reviewed-by: Clemens Backes <clemensb@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#66017}
      
      TBR=clemensb@chromium.org,bmeurer@chromium.org,duongn@microsoft.com,szuend@chromium.org
      
      # Not skipping CQ checks because original CL landed > 1 day ago.
      
      Bug: v8:9654
      Change-Id: Id49e8c69f8212e95e698d7e7267056fb2eb7e60a
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2030737
      Auto-Submit: Eric Leese <leese@chromium.org>
      Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
      Reviewed-by: 's avatarSimon Zünd <szuend@chromium.org>
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#66054}
      fb96381b
  21. 29 Jan, 2020 1 commit
  22. 09 Jan, 2020 1 commit
  23. 22 Nov, 2019 1 commit
  24. 18 Nov, 2019 1 commit
  25. 30 Jan, 2019 1 commit
  26. 13 Aug, 2018 1 commit
  27. 29 Mar, 2017 1 commit
  28. 15 Jan, 2017 1 commit
  29. 13 Jan, 2017 2 commits
  30. 12 Jan, 2017 4 commits
  31. 20 Dec, 2016 1 commit