1. 02 Dec, 2021 1 commit
  2. 21 Apr, 2021 1 commit
  3. 19 Apr, 2021 1 commit
  4. 16 Apr, 2021 2 commits
  5. 23 Oct, 2020 1 commit
  6. 22 Sep, 2020 1 commit
  7. 21 Sep, 2020 1 commit
  8. 11 Aug, 2020 1 commit
    • Ulan Degenbaev's avatar
      [heap] Split marking worklist into global worklist and local worklists · 28133adc
      Ulan Degenbaev authored
      This is the first step in refactoring Worklist to allow arbitrary
      number of local worklists with private segments:
      - Introduce MarkingWorklistImpl<> which will eventually replace
        (and will be renamed to) Worklist.
      - MarkingWorklistImpl<> owns the global pool of segments but does not
        keep track of private segments.
      - MarkingWorklistImpl<>::Local owns private segments and can be
        constructed dynamically on background threads.
      - Rename the existing MarkingWorklistsHolder to MarkingWorklists.
      - Rename the existing MarkingWorklists to MarkingWorklists::Local.
      - Rename the existing marking_workists_holder to marking_worklists.
      - Rename the existing marking_worklists to local_marking_worklists.
      
      Design doc: https://bit.ly/2XMtjLi
      Bug: v8:10315
      
      Change-Id: I9da34883ad34f4572fccd40c51e51eaf50c617bc
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2343330Reviewed-by: 's avatarDominik Inführ <dinfuehr@chromium.org>
      Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69330}
      28133adc
  9. 11 Dec, 2019 1 commit
    • Ulan Degenbaev's avatar
      [heap] Refactor marking worklists · 6b5bc5e9
      Ulan Degenbaev authored
      This unifies marking worklists handling by the main thread marker and
      by the concurrent markers. A new class called MarkingWorklistsHolder
      owns all marking worklists: the default worklist, the on-hold worklist,
      and the embedder worklist. Each thread creates a local view of the
      marking worklists by creating an instance of MarkingWorklists.
      
      Additionally, marking visitors now work on MarkingWorklists instead of
      accessing each worklist individually.
      
      Besides cleaning the code up, this CL provides a bottleneck for
      implementing per-context worklists.
      
      Bug: chromium:973627
      Change-Id: I52ad65c94bc0695287ba7bf4d8a814a9035e2888
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1941947Reviewed-by: 's avatarHannes Payer <hpayer@chromium.org>
      Reviewed-by: 's avatarDominik Inführ <dinfuehr@chromium.org>
      Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#65421}
      6b5bc5e9
  10. 30 Oct, 2019 1 commit
  11. 24 May, 2019 1 commit
  12. 18 Jan, 2019 1 commit
    • Ulan Degenbaev's avatar
      Reland "[heap] Remove bailout marking worklist." · 8b3fbe1d
      Ulan Degenbaev authored
      This reverts commit 13e07389.
      
      Original change's description:
      > [heap] Remove bailout marking worklist.
      >
      > The concurrent marker can now process all objects.
      > This patch also eagerly visits the objects that undergo layout
      > changes. This is because previously such objects were pushed
      > onto the bailout worklist, which is gone now.
      > To preserve the incremental step accounting, the patch introduces
      > a new GC tracer scope called MC_INCREMENTAL_LAYOUT_CHANGE.
      >
      > Bug: v8:8486
      > Change-Id: Ic1c2f0d4e2ac0602fc945f3258af9624247bd65f
      > Reviewed-on: https://chromium-review.googlesource.com/c/1386486
      > Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
      > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#58712}
      
      Change-Id: I85c99837819f6971c248198bd51ad40eebdb4fac
      Reviewed-on: https://chromium-review.googlesource.com/c/1417595Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#58913}
      8b3fbe1d
  13. 14 Jan, 2019 1 commit
    • Ulan Degenbaev's avatar
      Revert "[heap] Remove bailout marking worklist." · 13e07389
      Ulan Degenbaev authored
      This reverts commit 68a8bdd8.
      
      Reason for revert: memory regression: crbug.com/921239
      
      Original change's description:
      > [heap] Remove bailout marking worklist.
      > 
      > The concurrent marker can now process all objects.
      > This patch also eagerly visits the objects that undergo layout
      > changes. This is because previously such objects were pushed
      > onto the bailout worklist, which is gone now.
      > To preserve the incremental step accounting, the patch introduces
      > a new GC tracer scope called MC_INCREMENTAL_LAYOUT_CHANGE.
      > 
      > Bug: v8:8486
      > Change-Id: Ic1c2f0d4e2ac0602fc945f3258af9624247bd65f
      > Reviewed-on: https://chromium-review.googlesource.com/c/1386486
      > Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
      > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#58712}
      
      TBR=ulan@chromium.org,mlippautz@chromium.org
      
      # Not skipping CQ checks because original CL landed > 1 day ago.
      
      Bug: v8:8486, chromium:921239
      Change-Id: I1f851b948f4ce403316e469999f0b16e8dfdb62d
      Reviewed-on: https://chromium-review.googlesource.com/c/1408990
      Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#58787}
      13e07389
  14. 10 Jan, 2019 1 commit
    • Ulan Degenbaev's avatar
      [heap] Remove bailout marking worklist. · 68a8bdd8
      Ulan Degenbaev authored
      The concurrent marker can now process all objects.
      This patch also eagerly visits the objects that undergo layout
      changes. This is because previously such objects were pushed
      onto the bailout worklist, which is gone now.
      To preserve the incremental step accounting, the patch introduces
      a new GC tracer scope called MC_INCREMENTAL_LAYOUT_CHANGE.
      
      Bug: v8:8486
      Change-Id: Ic1c2f0d4e2ac0602fc945f3258af9624247bd65f
      Reviewed-on: https://chromium-review.googlesource.com/c/1386486
      Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#58712}
      68a8bdd8
  15. 20 Dec, 2018 1 commit
  16. 19 Sep, 2018 1 commit
  17. 04 Jul, 2018 1 commit
  18. 13 Jun, 2018 1 commit
  19. 19 Feb, 2018 3 commits
  20. 10 Oct, 2017 1 commit
    • Michael Lippautz's avatar
      [heap] Introduce on-hold concurrent marking work list · b7e6eb92
      Michael Lippautz authored
      When hitting objects that are allocated in the most recent lienar
      allocation area, the concurrent marker currently has to bail out to the
      main thread.
      
      However, we only have to delay processing those objects until we are at
      a safepoint, e.g. IM::Step(). With this change we flush those
      on-hold-objects back to the shared queue upon performing an incremental
      marking step.
      
      Bug: chromium:694255
      Change-Id: I25647d0fc581a5c4de0346bc394dc51062f65f70
      Reviewed-on: https://chromium-review.googlesource.com/707315
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48424}
      b7e6eb92
  21. 09 Oct, 2017 3 commits
  22. 05 Oct, 2017 1 commit
  23. 25 Aug, 2017 1 commit
  24. 11 Aug, 2017 2 commits
  25. 28 Jul, 2017 1 commit
  26. 17 Jul, 2017 1 commit
  27. 14 Jul, 2017 1 commit
  28. 13 Jul, 2017 1 commit
  29. 10 Jul, 2017 1 commit
  30. 04 Jul, 2017 1 commit
  31. 27 Jun, 2017 1 commit
  32. 26 Jun, 2017 1 commit
  33. 02 May, 2017 1 commit
    • ulan's avatar
      [heap] Implement simple concurrent marking deque. · c6816cd8
      ulan authored
      This patch adds a concurrent marking deque that exposes the same interface
      for the main thread as the existing marking deque.
      
      The matching interface makes the concurrent marking deque a drop-in
      replacement for the sequential marking deque without any change in
      mark-compactor and incremental marker.
      
      BUG=chromium:694255
      
      Review-Url: https://codereview.chromium.org/2810893002
      Cr-Commit-Position: refs/heads/master@{#45042}
      c6816cd8
  34. 10 Apr, 2017 1 commit