1. 29 Aug, 2019 1 commit
  2. 13 Jun, 2019 1 commit
    • Darius Mercadier's avatar
      Add FLAG_trace_gc_freelists and _verbose version · f4ebc674
      Darius Mercadier authored
      With this flag enabled, some statistics about the oldspace's freelists
      (and free/used spaced in general) are printed before and after each
      major garbage collection.
      
      It is useful to get some intuition about fragmentation and debug
      freelists. (This flag helped me track down the issues fixed by CLs
      1647162 and 1648476)
      
      Additionally, the verbose version (FLAG_trace_gc_freelists_verbose)
      prints the freelists of each page of old_space.
      
      Bug: v8:9329
      Change-Id: Ifa80426bf9d97ac9950459154507a585b039326d
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1655302
      Commit-Queue: Darius Mercadier <dmercadier@google.com>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#62150}
      f4ebc674
  3. 24 May, 2019 1 commit
  4. 22 May, 2019 2 commits
  5. 21 May, 2019 3 commits
    • Michael Lippautz's avatar
      Reland "[heap] Add global memory controller" · dac86be2
      Michael Lippautz authored
      Provide a global memory controller used to compute limits for combined
      on-heap and embedder memory. The global controller uses the same
      mechanism (gc speed, mutator speed) and growing factors as the regular
      on-heap controller.
      
      Rely on V8's mechanisms for configured state that stops shrinking the
      limit.
      
      This reverts commit 5e043f27.
      
      Tbr: ulan@chromium.org
      Bug: chromium:948807
      Change-Id: Id4f94e7dcb458d1d0d2f872194f8f3ea0959a73f
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1622968Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#61715}
      dac86be2
    • Michael Lippautz's avatar
      Revert "[heap] Add global memory controller" · 5e043f27
      Michael Lippautz authored
      This reverts commit cfe281f3.
      
      Reason for revert: Fails on gcc bots
      
      Original change's description:
      > [heap] Add global memory controller
      > 
      > Provide a global memory controller used to compute limits for combined
      > on-heap and embedder memory. The global controller uses the same
      > mechanism (gc speed, mutator speed) and growing factors as the regular
      > on-heap controller.
      > 
      > Rely on V8's mechanisms for configured state that stops shrinking the
      > limit.
      > 
      > Bug: chromium:948807
      > Change-Id: I3283a2c28e6ab889f8d2ad85c9b67b8f234b9900
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1619762
      > Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      > Reviewed-by: Hannes Payer <hpayer@chromium.org>
      > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#61712}
      
      TBR=ulan@chromium.org,hpayer@chromium.org,mlippautz@chromium.org,bikineev@chromium.org
      
      Change-Id: I503d5a1436eb9156556b5bca852d2b2f9da2446f
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: chromium:948807
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1622967Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#61713}
      5e043f27
    • Michael Lippautz's avatar
      [heap] Add global memory controller · cfe281f3
      Michael Lippautz authored
      Provide a global memory controller used to compute limits for combined
      on-heap and embedder memory. The global controller uses the same
      mechanism (gc speed, mutator speed) and growing factors as the regular
      on-heap controller.
      
      Rely on V8's mechanisms for configured state that stops shrinking the
      limit.
      
      Bug: chromium:948807
      Change-Id: I3283a2c28e6ab889f8d2ad85c9b67b8f234b9900
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1619762
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarHannes Payer <hpayer@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#61712}
      cfe281f3
  6. 20 May, 2019 1 commit
  7. 17 May, 2019 2 commits
  8. 29 Mar, 2019 1 commit
  9. 05 Feb, 2019 1 commit
  10. 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
  11. 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
  12. 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
  13. 26 Oct, 2018 1 commit
  14. 17 Oct, 2018 1 commit
  15. 04 Sep, 2018 1 commit
  16. 08 Jun, 2018 1 commit
  17. 26 Mar, 2018 1 commit
  18. 14 Dec, 2017 1 commit
    • Ulan Degenbaev's avatar
      [heap] Emit trace event for background GC tasks. · 2031503a
      Ulan Degenbaev authored
      The following events in v8.gc category are emitted:
      - V8.GC_BACKGROUND_ARRAY_BUFFER_FREE
      - V8.GC_BACKGROUND_STORE_BUFFER
      - V8.GC_BACKGROUND_UNMAPPER
      - V8.GC_MC_BACKGROUND_EVACUATE_COPY
      - V8.GC_MC_BACKGROUND_EVACUATE_UPDATE_POINTERS
      - V8.GC_MC_BACKGROUND_MARKING
      - V8.GC_MC_BACKGROUND_SWEEPING
      - V8.GC_MINOR_MC_BACKGROUND_EVACUATE_COPY
      - V8.GC_MINOR_MC_BACKGROUND_EVACUATE_UPDATE_POINTERS
      - V8.GC_MINOR_MC_BACKGROUND_MARKING
      - V8.GC_SCAVENGER_BACKGROUND_SCAVENGE_PARALLEL
      
      Bug: chromium:758183
      Change-Id: I04368f75ac740cbc832a864609709e5a46f5baef
      Reviewed-on: https://chromium-review.googlesource.com/825203
      Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarHannes Payer <hpayer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#50107}
      2031503a
  19. 07 Dec, 2017 1 commit
  20. 06 Dec, 2017 1 commit
  21. 04 Dec, 2017 1 commit
  22. 30 Nov, 2017 1 commit
  23. 31 Aug, 2017 1 commit
  24. 01 Aug, 2017 1 commit
  25. 31 Jul, 2017 1 commit
  26. 23 Jun, 2017 1 commit
  27. 01 Jun, 2017 1 commit
  28. 31 May, 2017 2 commits
  29. 29 May, 2017 2 commits
  30. 22 May, 2017 2 commits
    • Michael Lippautz's avatar
      [heap] MinorMC: Identify unmodified global handles on the fly · 652c9522
      Michael Lippautz authored
      For the Scavenger we require a first pass over global handles for identifying
      unmodified nodes because the Scavenger might have already written forwarding
      pointers during scanning, making it hard to perform the proper checks.
      
      The minor MC does not mutate the object graph during marking and can thus merge
      this phase into the regular phase executed during marking roots.
      
      Furthermore, moves processing into the parallel marking phase of the minor MC
      collector.
      
      Bug: chromium:720477, chromium:651354
      Change-Id: Id33552124264e3ab0bdf34d22ac30c19c1522707
      Reviewed-on: https://chromium-review.googlesource.com/509550
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#45461}
      652c9522
    • Ross McIlroy's avatar
      [Heap] Remove code flushing. · f5d0df35
      Ross McIlroy authored
      Only FullCodegen code ever gets flushed by code flushing. Since we are
      deprecating the old pipeline, the added complexity introduced by code
      flushing is no longer worth it. This CL removes it (but keeps code aging,
      which is used to unlink SFIs from the compilation cache).
      
      BUG=v8:6389,v8:6379,v8:6409
      
      Change-Id: I90de113a101f86dbeaaf0511c61a090ef12aa365
      Reviewed-on: https://chromium-review.googlesource.com/507388
      Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
      Reviewed-by: 's avatarHannes Payer <hpayer@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#45446}
      f5d0df35
  31. 17 May, 2017 1 commit
  32. 11 May, 2017 1 commit
  33. 03 May, 2017 1 commit
    • mlippautz's avatar
      [heap] MinorMC: Evacuation for young generation · bf74d43d
      mlippautz authored
      In the spirit of the full MC, we evacuate and update pointers in parallel for
      the young generation.
      
      The collectors are connected during incremental marking when mark bits are
      transferred from the young generation bitmap to the old generation bitmap.
      
      The evacuation phase cannot (yet) move pages and relies completely on copying
      objects.
      
      BUG=chromium:651354
      
      Review-Url: https://codereview.chromium.org/2796233003
      Cr-Commit-Position: refs/heads/master@{#45074}
      bf74d43d