1. 29 Oct, 2021 1 commit
    • Kim-Anh Tran's avatar
      Reland "[heap-snapshot] Preventing overflow in progress counter" · 4d937998
      Kim-Anh Tran authored
      This is a reland of 0e006a15
      Difference:
       * progress_total_ and progress_counter_ access are guarded by
         checking if control_ is set. If not, we do not report any progress
         and both are not set.
      
      Original change's description:
      > [heap-snapshot] Preventing overflow in progress counter
      >
      > This prevents an overflow to happen in the heap snapshot generator.
      > Furthermore it changes the relation of progress_counter_ and
      > progress_total_ to always adhere to:
      > * progress_counter_ <= progress_total_,
      > * if: progress_counter_ == progress_total_, then it is done.
      >
      > With this change, if progress_counter_ happens to be bigger
      > than progress_total_ (latter is an estimate), it will continue
      > to report the same progress (<100%) until it is done. Before,
      > it would repeatedly report 100% until it is done.
      >
      > Fixed: chromium:1246860
      > Change-Id: Iffd3f52355632f2b35abdbb3752912ba7b8bd821
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3250310
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Commit-Queue: Kim-Anh Tran <kimanh@chromium.org>
      > Cr-Commit-Position: refs/heads/main@{#77589}
      
      Bug: chromium:1246860
      Change-Id: I7522c1fe011954dd18828bdef507abe3e0237d42
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3251170Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Commit-Queue: Kim-Anh Tran <kimanh@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#77608}
      4d937998
  2. 28 Oct, 2021 2 commits
    • Clemens Backes's avatar
      Revert "[heap-snapshot] Preventing overflow in progress counter" · 5cbd1eed
      Clemens Backes authored
      This reverts commit 0e006a15.
      
      Reason for revert: MSan failures: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/41031/overview
      
      Original change's description:
      > [heap-snapshot] Preventing overflow in progress counter
      >
      > This prevents an overflow to happen in the heap snapshot generator.
      > Furthermore it changes the relation of progress_counter_ and
      > progress_total_ to always adhere to:
      > * progress_counter_ <= progress_total_,
      > * if: progress_counter_ == progress_total_, then it is done.
      >
      > With this change, if progress_counter_ happens to be bigger
      > than progress_total_ (latter is an estimate), it will continue
      > to report the same progress (<100%) until it is done. Before,
      > it would repeatedly report 100% until it is done.
      >
      > Fixed: chromium:1246860
      > Change-Id: Iffd3f52355632f2b35abdbb3752912ba7b8bd821
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3250310
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Commit-Queue: Kim-Anh Tran <kimanh@chromium.org>
      > Cr-Commit-Position: refs/heads/main@{#77589}
      
      Change-Id: I81e8bb563a48ce6b877e83e30a5f426bef0bb58d
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3250901
      Auto-Submit: Clemens Backes <clemensb@chromium.org>
      Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
      Commit-Queue: Maya Lekova <mslekova@chromium.org>
      Reviewed-by: 's avatarMaya Lekova <mslekova@chromium.org>
      Owners-Override: Maya Lekova <mslekova@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#77590}
      5cbd1eed
    • Kim-Anh Tran's avatar
      [heap-snapshot] Preventing overflow in progress counter · 0e006a15
      Kim-Anh Tran authored
      This prevents an overflow to happen in the heap snapshot generator.
      Furthermore it changes the relation of progress_counter_ and
      progress_total_ to always adhere to:
      * progress_counter_ <= progress_total_,
      * if: progress_counter_ == progress_total_, then it is done.
      
      With this change, if progress_counter_ happens to be bigger
      than progress_total_ (latter is an estimate), it will continue
      to report the same progress (<100%) until it is done. Before,
      it would repeatedly report 100% until it is done.
      
      Fixed: chromium:1246860
      Change-Id: Iffd3f52355632f2b35abdbb3752912ba7b8bd821
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3250310Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Commit-Queue: Kim-Anh Tran <kimanh@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#77589}
      0e006a15
  3. 26 Oct, 2021 2 commits
  4. 19 Oct, 2021 1 commit
  5. 12 Oct, 2021 1 commit
  6. 11 Oct, 2021 1 commit
  7. 06 Oct, 2021 1 commit
  8. 29 Sep, 2021 1 commit
  9. 28 Sep, 2021 1 commit
  10. 27 Sep, 2021 1 commit
  11. 20 Sep, 2021 1 commit
  12. 06 Sep, 2021 1 commit
  13. 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
  14. 23 Aug, 2021 3 commits
    • Corentin Pescheloche's avatar
      [cpu-profiler] Add method to estimate mem size of ProfilerCodeObserver · 731fd3f5
      Corentin Pescheloche authored
      This patchset introduces instrumentation of the memory usage of the
      datatructures maintained by the CPU profiler.
      It captures:
      * The total size of the strings held in StringsStorage for CodeEntries
      * Estimated size held by CodeMap's entries.
      
      The target is to surface that metric through telemetry to get better
      visibility into the memory profile of CpuProfiler.
      
      For now, STL containers overhead is ignored as it is implementation
      specific.
      
      Change-Id: I8c6a0cd4f14348fe8832dec1f24861befc67d700
      Bug: chromium:1241491
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3101580
      Auto-Submit: Corentin Pescheloche <cpescheloche@fb.com>
      Commit-Queue: Camillo Bruni <cbruni@chromium.org>
      Reviewed-by: 's avatarCamillo Bruni <cbruni@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#76438}
      731fd3f5
    • 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
  15. 20 Aug, 2021 1 commit
  16. 18 Aug, 2021 1 commit
    • Seth Brenith's avatar
      Avoid reporting incorrect retaining paths in heap snapshots · 53a527f6
      Seth Brenith authored
      The heap snapshot view in the dev tools reports a lot of incorrect
      retaining paths involving weak references from FeedbackVectors. To fix,
      when IndexedReferencesExtractor encounters a weak reference, it should
      record a weak reference rather than a hidden reference. This way, the
      forward reference is still visible when exploring in the summary view,
      but weak references aren't reported as retainers.
      
      Bug: v8:12112
      Change-Id: Ib3bafc49482fb4f515877a90bae8707483d0a7a2
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3101266Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Commit-Queue: Seth Brenith <seth.brenith@microsoft.com>
      Cr-Commit-Position: refs/heads/main@{#76364}
      53a527f6
  17. 16 Aug, 2021 1 commit
  18. 05 Aug, 2021 1 commit
  19. 29 Jul, 2021 2 commits
  20. 28 Jul, 2021 1 commit
  21. 20 Jul, 2021 1 commit
  22. 19 Jul, 2021 1 commit
  23. 15 Jul, 2021 1 commit
  24. 12 Jul, 2021 1 commit
  25. 02 Jul, 2021 1 commit
  26. 01 Jul, 2021 1 commit
  27. 22 Jun, 2021 2 commits
  28. 21 Jun, 2021 2 commits
  29. 18 Jun, 2021 1 commit
  30. 16 Jun, 2021 1 commit
  31. 15 Jun, 2021 2 commits
  32. 14 Jun, 2021 1 commit