1. 05 Apr, 2022 1 commit
    • Leszek Swirski's avatar
      [test] Make cctest run one test, with maybe custom platform · 49c507dc
      Leszek Swirski authored
      Remove cctest's ability to run multiple tests (which has long been
      deprecated and mostly broken). We can then make platform & V8
      initialisation be part of running the test's Run method.
      
      In particular, this allows us to inject custom logic into the platform
      initialisation, like setting up a platform wrapper. Add a
      TEST_WITH_PLATFORM which exercises this by registering a platform
      factory on the test, and wrapping the default platform using this
      factory. This allows these tests to guarantee that the lifetime of the
      platform is longer than the lifetime of the isolate.
      
      As a result of this, we can also remove the complexity around draining
      platform state in the TestPlatform (since it will now have a longer
      lifetime than the Isolate using it), and as a drive-by clean up the
      TestPlaform to use a CcTest-global "default platform" instead of trying
      to scope over the "current" platform.
      
      As another drive-by, change the linked-list of CcTests and the linear
      search through it into an std::map of tests.
      
      Change-Id: I610f6312fe042f29f45cc4dfba311e4184bc7759
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3569223Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#79772}
      49c507dc
  2. 23 Mar, 2022 1 commit
  3. 11 Feb, 2022 1 commit
  4. 02 Feb, 2022 3 commits
    • Nikolaos Papaspyrou's avatar
      heap: Fix the tracing of GC cycles · 73a1c635
      Nikolaos Papaspyrou authored
      Conceptually, a full GC cycle completes when the sweeping phase is
      finished. As sweeping is performed concurrently, this happens after
      Heap::CollectGarbage has returned and, at the latest, before the next
      full GC cycle begins. However, an arbitrary number of young GC cycles
      may happen in the meantime. Tracing information for the sweeping phase
      must be added to the corresponding full GC cycle event. Until now, this
      was not done correctly: this information was added to the GCTracer's
      current event and could thus be attributed to a subsequent young or full
      GC cycle.
      
      This CL introduces methods GCTracer::(Start|Stop)Cycle to delimit a
      cycle (still allowing for full GC cycles to be interrupted by young GC
      cycles). These methods are different from (Start|Stop)ObservablePause,
      which delimit the observable pause of each GC. The events of "pending"
      full GC cycles are kept until they are properly amended and reported,
      when the sweeping phase is finished.
      
      This is a reland of 4ad20bff
      which was reviewed here: https://crrev.com/3404733
      
      Bug: v8:12503
      Bug: chromium:1154636
      Change-Id: Icc315b53cff1f3b19b8efe49db34340a5608bcd2
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3432211Reviewed-by: 's avatarOmer Katz <omerkatz@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Commit-Queue: Nikolaos Papaspyrou <nikolaos@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#78911}
      73a1c635
    • Leszek Swirski's avatar
      Revert "heap: Fix the tracing of GC cycles" · 10e811c4
      Leszek Swirski authored
      This reverts commit 4ad20bff.
      
      Reason for revert: New test seems to be failing on TSAN/incremental marking stress (https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20TSAN%20-%20stress-incremental-marking/6346/overview)
      
      Original change's description:
      > heap: Fix the tracing of GC cycles
      >
      > Conceptually, a full GC cycle completes when the sweeping phase is
      > finished. As sweeping is performed concurrently, this happens after
      > Heap::CollectGarbage has returned and, at the latest, before the next
      > full GC cycle begins. However, an arbitrary number of young GC cycles
      > may happen in the meantime. Tracing information for the sweeping phase
      > must be added to the corresponding full GC cycle event. Until now, this
      > was not done correctly: this information was added to the GCTracer's
      > current event and could thus be attributed to a subsequent young or full
      > GC cycle.
      >
      > This CL introduces methods GCTracer::(Start|Stop)Cycle to delimit a
      > cycle (still allowing for full GC cycles to be interrupted by young GC
      > cycles). These methods are different from (Start|Stop)ObservablePause,
      > which delimit the observable pause of each GC. The events of "pending"
      > full GC cycles are kept until they are properly amended and reported,
      > when the sweeping phase is finished.
      >
      > Bug: chromium:1154636
      > Change-Id: I2fbc65d4807c78656d4abc8c451043f6f86211b1
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3404733
      > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > Reviewed-by: Omer Katz <omerkatz@chromium.org>
      > Commit-Queue: Nikolaos Papaspyrou <nikolaos@chromium.org>
      > Cr-Commit-Position: refs/heads/main@{#78905}
      
      Bug: chromium:1154636
      Change-Id: Id6688cfe982f9d8159c66d715b7079782a371bed
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3431489
      Auto-Submit: Leszek Swirski <leszeks@chromium.org>
      Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
      Owners-Override: Leszek Swirski <leszeks@chromium.org>
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#78908}
      10e811c4
    • Nikolaos Papaspyrou's avatar
      heap: Fix the tracing of GC cycles · 4ad20bff
      Nikolaos Papaspyrou authored
      Conceptually, a full GC cycle completes when the sweeping phase is
      finished. As sweeping is performed concurrently, this happens after
      Heap::CollectGarbage has returned and, at the latest, before the next
      full GC cycle begins. However, an arbitrary number of young GC cycles
      may happen in the meantime. Tracing information for the sweeping phase
      must be added to the corresponding full GC cycle event. Until now, this
      was not done correctly: this information was added to the GCTracer's
      current event and could thus be attributed to a subsequent young or full
      GC cycle.
      
      This CL introduces methods GCTracer::(Start|Stop)Cycle to delimit a
      cycle (still allowing for full GC cycles to be interrupted by young GC
      cycles). These methods are different from (Start|Stop)ObservablePause,
      which delimit the observable pause of each GC. The events of "pending"
      full GC cycles are kept until they are properly amended and reported,
      when the sweeping phase is finished.
      
      Bug: chromium:1154636
      Change-Id: I2fbc65d4807c78656d4abc8c451043f6f86211b1
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3404733Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarOmer Katz <omerkatz@chromium.org>
      Commit-Queue: Nikolaos Papaspyrou <nikolaos@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#78905}
      4ad20bff
  5. 27 Nov, 2020 1 commit
  6. 03 Sep, 2020 1 commit
  7. 02 Jun, 2020 1 commit
  8. 24 May, 2019 1 commit
  9. 23 May, 2019 2 commits
  10. 13 Feb, 2019 1 commit
  11. 07 Feb, 2019 1 commit
    • Ulan Degenbaev's avatar
      [heap] Rework incremental marking scheduling · 4c65986a
      Ulan Degenbaev authored
      The new scheduling reduces the main thread marking performed in
      tasks and on allocation. It is based on two counters:
      - bytes_marked,
      - scheduled_bytes_to_mark.
      
      The bytes_marked accounts marking done both the main thread and
      the concurrent threads. The scheduled_bytes_to_mark increases based
      on allocated bytes and also based on time passed since the start
      of marking. The main thread steps are allowed to mark the minimal
      amount if bytes_marked is greater than scheduled_bytes_to_mark.
      
      This also changes tasks posted for marking. Before only normal
      tasks were posted. Now delayed tasks are posted if the marker is
      ahead of schedule.
      
      Bug: 926189
      
      Change-Id: I5bc9c33a5ecfc9f8d09f78d08ae277d16a2779ca
      Reviewed-on: https://chromium-review.googlesource.com/c/1443056
      Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59433}
      4c65986a
  12. 04 Oct, 2018 1 commit
  13. 17 Sep, 2018 1 commit
  14. 26 Mar, 2018 1 commit
  15. 05 Mar, 2018 1 commit
  16. 08 Dec, 2017 1 commit
  17. 11 Aug, 2017 2 commits
  18. 01 Aug, 2017 1 commit
  19. 03 Jul, 2017 1 commit
    • Jochen Eisinger's avatar
      Reland "Switch tracing to use v8::TracingController" · cc59f8b1
      Jochen Eisinger authored
      Original change's description:
      > Switch tracing to use v8::TracingController
      >
      > BUG=v8:6511
      > R=fmeawad@chromium.org
      >
      > Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      > Change-Id: I4961e4b61a9ddc98385ed97c3ffcbcaef2d9cba7
      > Reviewed-on: https://chromium-review.googlesource.com/543144
      > Commit-Queue: Jochen Eisinger <jochen@chromium.org>
      > Reviewed-by: Fadi Meawad <fmeawad@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#46307}
      
      BUG=v8:6511
      TBR=fmeawad@chromium.org
      
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng;master.tryserver.v8:v8_linux64_tsan_rel
      Change-Id: Ide32b409248dfd466e7c0bae1d8ae61d6a955d98
      Reviewed-on: https://chromium-review.googlesource.com/558865
      Commit-Queue: Jochen Eisinger <jochen@chromium.org>
      Reviewed-by: 's avatarJochen Eisinger <jochen@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46381}
      cc59f8b1
  20. 29 Jun, 2017 2 commits
  21. 22 Jun, 2017 1 commit
  22. 29 May, 2017 1 commit
  23. 23 Feb, 2017 1 commit
  24. 17 Nov, 2016 1 commit
  25. 28 Sep, 2016 1 commit
    • zhengxing.li's avatar
      [tracing] Avoid Gcc compilation fail by declaring AddTraceEvent function in... · 990a8e39
      zhengxing.li authored
      [tracing] Avoid Gcc compilation fail by declaring AddTraceEvent function in Class derived from Platform Class.
      
        The CL #39789 (https://codereview.chromium.org/2367603002 ) caused the Gcc compilation fail for v8 debug mode.
        The error message was:
        In file included from .././include/libplatform/v8-tracing.h:13:0,
                         from .././src/libplatform/default-platform.h:14,
                         from ../src/libplatform/default-platform.cc:5:
        .././include/v8-platform.h:169:20: error: ‘virtual uint64_t v8::Platform::AddTraceEvent(char, const uint8_t*, const char*, const char*, uint64_t, uint64_t, int32_t, const char**, const uint8_t*, const uint64_t*, unsigned int)’ was hidden [-Werror=overloaded-virtual]
           virtual uint64_t AddTraceEvent(
                            ^
        In file included from ../src/libplatform/default-platform.cc:5:0:
        .././src/libplatform/default-platform.h:55:12: error:   by ‘virtual uint64_t v8::platform::DefaultPlatform::AddTraceEvent(char, const uint8_t*, const char*, const char*, uint64_t, uint64_t, int32_t, const char**, const uint8_t*, const uint64_t*, std::unique_ptr<v8::ConvertableToTraceFormat>*, unsigned int)’ [-Werror=overloaded-virtual]
           uint64_t AddTraceEvent(
                    ^
      
        This CL fixed this issue by adding "using Platform::AddTraceEvent;" before all declarations of AddTraceEvent functions in Classes derived from Platform Class.
      
      BUG=
      
      Review-Url: https://codereview.chromium.org/2380583002
      Cr-Commit-Position: refs/heads/master@{#39810}
      990a8e39
  26. 12 Sep, 2016 1 commit
  27. 07 Sep, 2016 2 commits
  28. 20 May, 2016 1 commit
    • mlippautz's avatar
      [heap] Harden heap-related cctests · fdd9f6b9
      mlippautz authored
      - Move usable functions into proper heap-utils.h/.cc files and remove
        utils-inl.h file
      - Fix assumptions accross the board relying on certain behavior that is not
        invariant
      
      This is a requirement for modifying page size.
      
      BUG=chromium:581412
      LOG=N
      R=ulan@chromium.org
      
      Review-Url: https://codereview.chromium.org/1999753002
      Cr-Commit-Position: refs/heads/master@{#36410}
      fdd9f6b9
  29. 01 Mar, 2016 1 commit
  30. 26 Feb, 2016 1 commit
    • fmeawad's avatar
      Reland: Add Scoped Context Info (Isolate) to V8 Traces · 567e5839
      fmeawad authored
      This patch adds the newly added support for contexts in V8 Tracing, as well
      as use it to mark all the entry points for a V8 Isolate.
      
      Update for reland: The current tracing interface needs to be updated (AddTraceEvent),
      but the embedders need to migrate to the new version before removing the old version.
      (Reland of: https://codereview.chromium.org/1686233002)
      
      The revert happened because the 2 signatures of the old and new AddTraceEvent where different
      so it threw an overload-virtual error on cross arm debug. This issue is temporary, and to solve
      it, I added an implementation of the old and new everywhere until the embedder implements the new.
      
      BUG=v8:4565
      LOG=N
      
      R=jochen@chromium.org
      
      Review URL: https://codereview.chromium.org/1704253002
      
      Cr-Commit-Position: refs/heads/master@{#34332}
      567e5839
  31. 17 Dec, 2015 1 commit
  32. 09 Dec, 2015 2 commits
  33. 09 Nov, 2015 1 commit