1. 23 Feb, 2022 1 commit
  2. 04 Feb, 2022 1 commit
  3. 07 Dec, 2021 1 commit
    • Corentin Pescheloche's avatar
      Reland "[profiler] Surface VM & Embedder State" · e155881f
      Corentin Pescheloche authored
      This is a reland of 2d087f23
      
      The changes are :
      * Fix redundant reinterpret_cast in test file for MSVC failure
      https://crbug.com/v8/12476
      * Fix flaky test
      https://crbug.com/v8/12475
      If a sample is captured during a GC, no embedder context is obtained
      defaulting to EMPTY. This is the expected behavior, made it in clear
      in implementation and in test.
      * Synchronized the embedder context filter behavior with existing
      native context filter.
      
      Original change's description:
      
      > Add APIs to surface VMState and new EmbedderState to CpuProfile samples.
      >
      > EmbedderState:
      > * An EmbedderState is defined as a value uint8_t and a v8::context used
      > for filtering.
      > * EmbedderStates are stack allocated by the embedder, construction and
      > destruction set/unset the state to the isolate thread local top.
      > * A v8::context is used to filter states that are added to a CpuProfile,
      > if the CpuProfile do not have a ContextFilter set or if contexts do not
      > match, state defaults to Empty.
      >
      > * v8:StateTag is already propagated all the way to a Sample, simply add
      > an API to surface it.
      >
      > VMState:
      > Change-Id: I7eed08907360b99b0ad20ddcff59c95c7076c85e
      > Bug: chromium:1263871
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3188072
      > Auto-Submit: Corentin Pescheloche <cpescheloche@fb.com>
      > Reviewed-by: Camillo Bruni <cbruni@chromium.org>
      > Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
      > Reviewed-by: Igor Sheludko <ishell@chromium.org>
      > Commit-Queue: Camillo Bruni <cbruni@chromium.org>
      > Cr-Commit-Position: refs/heads/main@{#78250}
      
      Bug: chromium:1263871
      Change-Id: Ief891b05da99c695e9fb70f94ed7ebdecc6c3b7b
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3320037
      Auto-Submit: Corentin Pescheloche <cpescheloche@fb.com>
      Reviewed-by: 's avatarCamillo Bruni <cbruni@chromium.org>
      Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Reviewed-by: 's avatarDominik Inführ <dinfuehr@chromium.org>
      Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#78281}
      e155881f
  4. 06 Dec, 2021 2 commits
    • Camillo Bruni's avatar
      Revert "[profiler] Surface VM & Embedder State" · 480a917d
      Camillo Bruni authored
      This reverts commit 2d087f23.
      
      Reason for revert: 
      - Causing MSVC build failures: https://crbug.com/v8/12476
      - Causing flaky failures: https://crbug.com/v8/12475
      
      Original change's description:
      > [profiler] Surface VM & Embedder State
      >
      > Add APIs to surface VMState and new EmbedderState to CpuProfile samples.
      >
      > EmbedderState:
      > * An EmbedderState is defined as a value uint8_t and a v8::context used
      > for filtering.
      > * EmbedderStates are stack allocated by the embedder, construction and
      > destruction set/unset the state to the isolate thread local top.
      > * A v8::context is used to filter states that are added to a CpuProfile,
      > if the CpuProfile do not have a ContextFilter set or if contexts do not
      > match, state defaults to Empty.
      >
      > * v8:StateTag is already propagated all the way to a Sample, simply add
      > an API to surface it.
      >
      > VMState: 
      > Change-Id: I7eed08907360b99b0ad20ddcff59c95c7076c85e
      > Bug: chromium:1263871
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3188072
      > Auto-Submit: Corentin Pescheloche <cpescheloche@fb.com>
      > Reviewed-by: Camillo Bruni <cbruni@chromium.org>
      > Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
      > Reviewed-by: Igor Sheludko <ishell@chromium.org>
      > Commit-Queue: Camillo Bruni <cbruni@chromium.org>
      > Cr-Commit-Position: refs/heads/main@{#78250}
      
      Bug: chromium:1263871, v8:12475, v8:12476
      Change-Id: I02670b1ed3bb863033208369227642a7419fce00
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3315444
      Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Commit-Queue: Camillo Bruni <cbruni@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#78256}
      480a917d
    • Corentin Pescheloche's avatar
      [profiler] Surface VM & Embedder State · 2d087f23
      Corentin Pescheloche authored
      Add APIs to surface VMState and new EmbedderState to CpuProfile samples.
      
      EmbedderState:
      * An EmbedderState is defined as a value uint8_t and a v8::context used
      for filtering.
      * EmbedderStates are stack allocated by the embedder, construction and
      destruction set/unset the state to the isolate thread local top.
      * A v8::context is used to filter states that are added to a CpuProfile,
      if the CpuProfile do not have a ContextFilter set or if contexts do not
      match, state defaults to Empty.
      
      * v8:StateTag is already propagated all the way to a Sample, simply add
      an API to surface it.
      
      VMState: 
      Change-Id: I7eed08907360b99b0ad20ddcff59c95c7076c85e
      Bug: chromium:1263871
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3188072
      Auto-Submit: Corentin Pescheloche <cpescheloche@fb.com>
      Reviewed-by: 's avatarCamillo Bruni <cbruni@chromium.org>
      Reviewed-by: 's avatarDominik Inführ <dinfuehr@chromium.org>
      Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Commit-Queue: Camillo Bruni <cbruni@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#78250}
      2d087f23
  5. 08 Nov, 2021 1 commit
  6. 16 Aug, 2021 1 commit
  7. 28 Apr, 2021 1 commit
  8. 27 Apr, 2021 1 commit
  9. 21 Apr, 2021 1 commit
  10. 12 Apr, 2021 1 commit
  11. 09 Feb, 2021 1 commit
  12. 18 Nov, 2020 1 commit
  13. 14 Sep, 2020 1 commit
  14. 01 Sep, 2020 1 commit
  15. 17 Jun, 2020 1 commit
    • Georgia Kouveli's avatar
      [arm64][cfi] Skip authenticating return addresses in the profiler · bf383a87
      Georgia Kouveli authored
      The SafeStackFrameIterator, used in the profiler, sometimes uses the
      link register instead of a return address stored on the stack, to get
      more accurate results. This happens in particular for bytecode handlers
      that do not create a stack frame. Authentication of PC for those frames
      would fail in the SafeStackFrameIterator, as the "PC address" would not
      point to a stack location with a signed return address, but instead to
      a member of the SafeStackFrameIterator class where the value of the link
      register was stored. We address this by skipping authentication of PCs
      in the profiler.
      
      Bug: v8:10026
      Change-Id: I331c6c68e703db766be1891efffa69c2f9794e8a
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2242954Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Commit-Queue: Georgia Kouveli <georgia.kouveli@arm.com>
      Cr-Commit-Position: refs/heads/master@{#68388}
      bf383a87
  16. 18 May, 2020 1 commit
  17. 21 Feb, 2020 1 commit
  18. 17 Oct, 2019 2 commits
    • Toon Verwaest's avatar
      Reland^2 "[runtime] Move Context::native_context to the map" · 3cad6bf5
      Toon Verwaest authored
      This is a reland of c7c47c68.
      
      This makes TSAN happy in addition to:
      
      Previously I presumed that the context read from a frame in the profiler was
      a valid context. Turns out that on non-intel we're not guaranteed that the
      frame is properly set up. In the case we looked at, the profiler took a
      sample right before writing the frame marker indicating a builtin frame,
      causing the "context" pointer from that frame to be a bytecode array. Since
      we'll read random garbage on the stack as a possible context pointer, I made
      the code reading the native context from it a little more defensive.
      
      Bug: v8:9860
      Tbr: ulan@chromium.org, neis@chromium.org, ishell@chromium.org
      
      Original change's description:
      > [runtime] Move Context::native_context to the map
      >
      > Remove the native context slot from contexts by making context maps
      > native-context-specific. Now we require 2 loads to go from a context to the
      > native context, but we have 1 field fewer to store when creating contexts.
      >
      > Change-Id: I3c0d7c50c94060c4129db684f46a567de6f30e8d
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1859629
      > Commit-Queue: Toon Verwaest <verwaest@chromium.org>
      > Reviewed-by: Igor Sheludko <ishell@chromium.org>
      > Reviewed-by: Peter Marshall <petermarshall@chromium.org>
      > Reviewed-by: Maya Lekova <mslekova@chromium.org>
      > Reviewed-by: Georg Neis <neis@chromium.org>
      > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > Reviewed-by: Toon Verwaest <verwaest@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#64296}
      
      Change-Id: I4d0ab4cbbb23a9ae616407f17ef8f35a0b68ddb4
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1864654
      Commit-Queue: Toon Verwaest <verwaest@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Reviewed-by: 's avatarPeter Marshall <petermarshall@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#64360}
      3cad6bf5
    • Toon Verwaest's avatar
      [profiler] Make ScrapeNativeContext check types and only run it where safe. · 2dbcdc02
      Toon Verwaest authored
      Previously ScrapeNativeContext was written quite defensively which could result
      in false positives and crashes.
      
      This CL makes the function always bail out when we're running on non-ia32/x64
      since only those 2 properly verify whether the program is setting up a frame.
      If we are setting up a frame, the context will be garbage.
      
      This CL also disables profiler tests when TSAN is running since TSAN makes
      ScrapeNativeContext unsafe: it considers SIGPROF asynchronous and will run the
      handler after the program has already run further than the context that's
      passed into the handler.
      
      Bug: v8:9860, v8:9869
      Change-Id: I5a08374feba2e0e77ddd59e02dc2d7e9c90c2e04
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1866469Reviewed-by: 's avatarPeter Marshall <petermarshall@chromium.org>
      Commit-Queue: Toon Verwaest <verwaest@chromium.org>
      Auto-Submit: Toon Verwaest <verwaest@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#64354}
      2dbcdc02
  19. 16 Oct, 2019 2 commits
    • Sathya Gunasekaran's avatar
      Revert "Reland "[runtime] Move Context::native_context to the map"" · 38301e7b
      Sathya Gunasekaran authored
      This reverts commit c7c47c68.
      
      Reason for revert: breaks TSAN
      https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20TSAN/28738
      
      Original change's description:
      > Reland "[runtime] Move Context::native_context to the map"
      > 
      > This is a reland of f05bae1e
      > 
      > Previously I presumed that the context read from a frame in the profiler was
      > a valid context. Turns out that on non-intel we're not guaranteed that the
      > frame is properly set up. In the case we looked at, the profiler took a
      > sample right before writing the frame marker indicating a builtin frame,
      > causing the "context" pointer from that frame to be a bytecode array. Since
      > we'll read random garbage on the stack as a possible context pointer, I made
      > the code reading the native context from it a little more defensive.
      > 
      > Bug: v8:9860
      > 
      > Original change's description:
      > > [runtime] Move Context::native_context to the map
      > >
      > > Remove the native context slot from contexts by making context maps
      > > native-context-specific. Now we require 2 loads to go from a context to the
      > > native context, but we have 1 field fewer to store when creating contexts.
      > >
      > > Change-Id: I3c0d7c50c94060c4129db684f46a567de6f30e8d
      > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1859629
      > > Commit-Queue: Toon Verwaest <verwaest@chromium.org>
      > > Reviewed-by: Igor Sheludko <ishell@chromium.org>
      > > Reviewed-by: Peter Marshall <petermarshall@chromium.org>
      > > Reviewed-by: Maya Lekova <mslekova@chromium.org>
      > > Reviewed-by: Georg Neis <neis@chromium.org>
      > > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > > Reviewed-by: Toon Verwaest <verwaest@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#64296}
      > 
      > Change-Id: If9461e9b21d35a260d71c79d7f95e518cc429e09
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1864930
      > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > Reviewed-by: Peter Marshall <petermarshall@chromium.org>
      > Reviewed-by: Igor Sheludko <ishell@chromium.org>
      > Reviewed-by: Georg Neis <neis@chromium.org>
      > Commit-Queue: Toon Verwaest <verwaest@chromium.org>
      > Auto-Submit: Toon Verwaest <verwaest@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#64314}
      
      TBR=ulan@chromium.org,neis@chromium.org,petermarshall@chromium.org,ishell@chromium.org,verwaest@chromium.org,mslekova@chromium.org,victorgomes@google.com
      
      Change-Id: I4f9edc62ea6f9f5857619ff0ad1a63cab4b33cc3
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:9860
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1864937Reviewed-by: 's avatarSathya Gunasekaran  <gsathya@chromium.org>
      Commit-Queue: Sathya Gunasekaran  <gsathya@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#64316}
      38301e7b
    • Toon Verwaest's avatar
      Reland "[runtime] Move Context::native_context to the map" · c7c47c68
      Toon Verwaest authored
      This is a reland of f05bae1e
      
      Previously I presumed that the context read from a frame in the profiler was
      a valid context. Turns out that on non-intel we're not guaranteed that the
      frame is properly set up. In the case we looked at, the profiler took a
      sample right before writing the frame marker indicating a builtin frame,
      causing the "context" pointer from that frame to be a bytecode array. Since
      we'll read random garbage on the stack as a possible context pointer, I made
      the code reading the native context from it a little more defensive.
      
      Bug: v8:9860
      
      Original change's description:
      > [runtime] Move Context::native_context to the map
      >
      > Remove the native context slot from contexts by making context maps
      > native-context-specific. Now we require 2 loads to go from a context to the
      > native context, but we have 1 field fewer to store when creating contexts.
      >
      > Change-Id: I3c0d7c50c94060c4129db684f46a567de6f30e8d
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1859629
      > Commit-Queue: Toon Verwaest <verwaest@chromium.org>
      > Reviewed-by: Igor Sheludko <ishell@chromium.org>
      > Reviewed-by: Peter Marshall <petermarshall@chromium.org>
      > Reviewed-by: Maya Lekova <mslekova@chromium.org>
      > Reviewed-by: Georg Neis <neis@chromium.org>
      > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > Reviewed-by: Toon Verwaest <verwaest@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#64296}
      
      Change-Id: If9461e9b21d35a260d71c79d7f95e518cc429e09
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1864930Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarPeter Marshall <petermarshall@chromium.org>
      Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Commit-Queue: Toon Verwaest <verwaest@chromium.org>
      Auto-Submit: Toon Verwaest <verwaest@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#64314}
      c7c47c68
  20. 15 Oct, 2019 2 commits
  21. 22 Aug, 2019 1 commit
  22. 20 Aug, 2019 1 commit
  23. 21 Jun, 2019 1 commit
  24. 22 May, 2019 1 commit
  25. 21 May, 2019 1 commit
  26. 20 May, 2019 1 commit
  27. 17 May, 2019 2 commits
  28. 15 May, 2019 2 commits
  29. 02 May, 2019 1 commit
  30. 29 Apr, 2019 1 commit
  31. 24 Apr, 2019 1 commit
  32. 25 Feb, 2019 1 commit
  33. 15 Feb, 2019 1 commit
  34. 30 Jan, 2019 1 commit