1. 21 Feb, 2022 2 commits
  2. 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
  3. 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
  4. 26 Oct, 2021 1 commit
  5. 24 Aug, 2021 1 commit
    • Dan Elphick's avatar
      Reland "[include] Split out v8.h" · ec06bb6c
      Dan Elphick authored
      This is a reland of d1b27019
      
      Fixes include:
      Adding missing file to bazel build
      Forward-declaring classing before friend-classing them to fix win/gcc
      Add missing v8-isolate.h include for vtune builds
      
      Original change's description:
      > [include] Split out v8.h
      >
      > This moves every single class/function out of include/v8.h into a
      > separate header in include/, which v8.h then includes so that
      > externally nothing appears to have changed.
      >
      > Every include of v8.h from inside v8 has been changed to a more
      > fine-grained include.
      >
      > Previously inline functions defined at the bottom of v8.h would call
      > private non-inline functions in the V8 class. Since that class is now
      > in v8-initialization.h and is rarely included (as that would create
      > dependency cycles), this is not possible and so those methods have been
      > moved out of the V8 class into the namespace v8::api_internal.
      >
      > None of the previous files in include/ now #include v8.h, which means
      > if embedders were relying on this transitive dependency then it will
      > give compile failures.
      >
      > v8-inspector.h does depend on v8-scripts.h for the time being to ensure
      > that Chrome continue to compile but that change will be reverted once
      > those transitive #includes in chrome are changed to include it directly.
      >
      > Full design:
      > https://docs.google.com/document/d/1rTD--I8hCAr-Rho1WTumZzFKaDpEp0IJ8ejZtk4nJdA/edit?usp=sharing
      >
      > Bug: v8:11965
      > Change-Id: I53b84b29581632710edc80eb11f819c2097a2877
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3097448
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Reviewed-by: Camillo Bruni <cbruni@chromium.org>
      > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
      > Reviewed-by: Leszek Swirski <leszeks@chromium.org>
      > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > Commit-Queue: Dan Elphick <delphick@chromium.org>
      > Cr-Commit-Position: refs/heads/main@{#76424}
      
      Cq-Include-Trybots: luci.v8.try:v8_linux_vtunejit
      Bug: v8:11965
      Change-Id: I99f5d3a73bf8fe25b650adfaf9567dc4e44a09e6
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3113629Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarCamillo Bruni <cbruni@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Reviewed-by: 's avatarSimon Zünd <szuend@chromium.org>
      Commit-Queue: Dan Elphick <delphick@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#76460}
      ec06bb6c
  6. 23 Aug, 2021 2 commits
    • Dan Elphick's avatar
      Revert "[include] Split out v8.h" · 44fe02ce
      Dan Elphick authored
      This reverts commit d1b27019.
      
      Reason for revert: Broke vtune build, tsan build and possibly others
      
      Original change's description:
      > [include] Split out v8.h
      >
      > This moves every single class/function out of include/v8.h into a
      > separate header in include/, which v8.h then includes so that
      > externally nothing appears to have changed.
      >
      > Every include of v8.h from inside v8 has been changed to a more
      > fine-grained include.
      >
      > Previously inline functions defined at the bottom of v8.h would call
      > private non-inline functions in the V8 class. Since that class is now
      > in v8-initialization.h and is rarely included (as that would create
      > dependency cycles), this is not possible and so those methods have been
      > moved out of the V8 class into the namespace v8::api_internal.
      >
      > None of the previous files in include/ now #include v8.h, which means
      > if embedders were relying on this transitive dependency then it will
      > give compile failures.
      >
      > v8-inspector.h does depend on v8-scripts.h for the time being to ensure
      > that Chrome continue to compile but that change will be reverted once
      > those transitive #includes in chrome are changed to include it directly.
      >
      > Full design:
      > https://docs.google.com/document/d/1rTD--I8hCAr-Rho1WTumZzFKaDpEp0IJ8ejZtk4nJdA/edit?usp=sharing
      >
      > Bug: v8:11965
      > Change-Id: I53b84b29581632710edc80eb11f819c2097a2877
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3097448
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Reviewed-by: Camillo Bruni <cbruni@chromium.org>
      > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
      > Reviewed-by: Leszek Swirski <leszeks@chromium.org>
      > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > Commit-Queue: Dan Elphick <delphick@chromium.org>
      > Cr-Commit-Position: refs/heads/main@{#76424}
      
      Bug: v8:11965
      Change-Id: Id57313ae992e720c8b19abc975cd69729e1344aa
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3113627
      Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Owners-Override: Leszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#76428}
      44fe02ce
    • Dan Elphick's avatar
      [include] Split out v8.h · d1b27019
      Dan Elphick authored
      This moves every single class/function out of include/v8.h into a
      separate header in include/, which v8.h then includes so that
      externally nothing appears to have changed.
      
      Every include of v8.h from inside v8 has been changed to a more
      fine-grained include.
      
      Previously inline functions defined at the bottom of v8.h would call
      private non-inline functions in the V8 class. Since that class is now
      in v8-initialization.h and is rarely included (as that would create
      dependency cycles), this is not possible and so those methods have been
      moved out of the V8 class into the namespace v8::api_internal.
      
      None of the previous files in include/ now #include v8.h, which means
      if embedders were relying on this transitive dependency then it will
      give compile failures.
      
      v8-inspector.h does depend on v8-scripts.h for the time being to ensure
      that Chrome continue to compile but that change will be reverted once
      those transitive #includes in chrome are changed to include it directly.
      
      Full design:
      https://docs.google.com/document/d/1rTD--I8hCAr-Rho1WTumZzFKaDpEp0IJ8ejZtk4nJdA/edit?usp=sharing
      
      Bug: v8:11965
      Change-Id: I53b84b29581632710edc80eb11f819c2097a2877
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3097448Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Reviewed-by: 's avatarCamillo Bruni <cbruni@chromium.org>
      Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Commit-Queue: Dan Elphick <delphick@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#76424}
      d1b27019
  7. 30 Apr, 2021 1 commit
  8. 21 Apr, 2021 1 commit
  9. 16 Apr, 2021 1 commit
  10. 16 Feb, 2021 1 commit
  11. 29 Oct, 2020 1 commit
  12. 28 Oct, 2020 2 commits
  13. 27 Oct, 2020 1 commit
  14. 14 Sep, 2020 2 commits
  15. 09 Sep, 2020 1 commit
  16. 27 Apr, 2020 1 commit
  17. 18 Dec, 2019 1 commit
  18. 27 Nov, 2019 1 commit
  19. 09 Oct, 2019 1 commit
    • Clemens Backes's avatar
      [api] Use C++14 [[deprecated]] attribute · 739bee71
      Clemens Backes authored
      Since C++14, there is a spec'ed attribute for deprecation of methods,
      functions, types, aliases or anything else.
      This CL switches from the GCC __attribute__ to this standard attribute.
      This allows to use the V8_DEPRECATED and V8_DEPRECATE_SOON macros on
      anything where the standard attribute can be used (including {using}
      statements that were not working before). It also avoids the need to
      nest the whole declaration in the macro, making the code more readable.
      
      R=adamk@chromium.org
      
      Bug: v8:9810
      Change-Id: I7adab7694af75423fb31ade2fc982dbf9c9bc699
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1847361Reviewed-by: 's avatarAdam Klein <adamk@chromium.org>
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#64174}
      739bee71
  20. 24 Sep, 2019 1 commit
  21. 16 Sep, 2019 1 commit
  22. 13 Sep, 2019 1 commit
  23. 22 Aug, 2019 1 commit
  24. 20 Aug, 2019 1 commit
  25. 09 Aug, 2019 1 commit
  26. 26 Jul, 2019 1 commit
  27. 22 May, 2019 1 commit
  28. 15 May, 2019 1 commit
  29. 13 May, 2019 1 commit
  30. 10 May, 2019 1 commit
  31. 08 May, 2019 1 commit
  32. 25 Apr, 2019 1 commit
  33. 24 Apr, 2019 2 commits
  34. 16 Apr, 2019 1 commit