1. 04 Aug, 2020 1 commit
    • Dominik Inführ's avatar
      Reland "[heap] Refactor allocation observer in AllocationCounter" · 9fff9a73
      Dominik Inführ authored
      This is a reland of b354e344
      
      This CL adds 3 fixes:
      
      * Unprotect code object before creating filler
      * Allows AllocationObserver::Step to add more AllocationObservers
      * Update limit in NewSpace::UpdateLinearAllocationArea
      
      Original change's description:
      > [heap] Refactor allocation observer in AllocationCounter
      >
      > Moves accounting of allocation observers into the AllocationCounter
      > class. This CL removes top_on_previous_step_ for counters that are
      > increased regularly in the slow path of the allocation functions.
      >
      > AdvanceAllocationObservers() informs the AllocationCounter about
      > allocated bytes, InvokeAllocationObservers() needs to be invoked when
      > an allocation step is reached. NextBytes() returns the number of bytes
      > until the next AllocationObserver::Step needs to run.
      >
      > Bug: v8:10315
      > Change-Id: I8b6eb8719ab032d44ee0614d2a0f2645bfce9df6
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2320650
      > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
      > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#69170}
      
      Bug: v8:10315
      Change-Id: I89ab4d5069a234a293471f613dab16b47d8fff89
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2332805Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69216}
      9fff9a73
  2. 01 Aug, 2020 1 commit
    • Dominik Inführ's avatar
      Revert "[heap] Refactor allocation observer in AllocationCounter" · ef603a9e
      Dominik Inführ authored
      This reverts commit b354e344.
      
      Reason for revert: Clusterfuzz found issues with this CL.
      
      Original change's description:
      > [heap] Refactor allocation observer in AllocationCounter
      > 
      > Moves accounting of allocation observers into the AllocationCounter
      > class. This CL removes top_on_previous_step_ for counters that are
      > increased regularly in the slow path of the allocation functions.
      > 
      > AdvanceAllocationObservers() informs the AllocationCounter about
      > allocated bytes, InvokeAllocationObservers() needs to be invoked when
      > an allocation step is reached. NextBytes() returns the number of bytes
      > until the next AllocationObserver::Step needs to run.
      > 
      > Bug: v8:10315
      > Change-Id: I8b6eb8719ab032d44ee0614d2a0f2645bfce9df6
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2320650
      > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
      > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#69170}
      
      TBR=ulan@chromium.org,dinfuehr@chromium.org
      
      Change-Id: Icd713207bfb2085421fd82009be24a0211ae86da
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:10315
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2332667Reviewed-by: 's avatarDominik Inführ <dinfuehr@chromium.org>
      Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69187}
      ef603a9e
  3. 31 Jul, 2020 1 commit
    • Dominik Inführ's avatar
      [heap] Refactor allocation observer in AllocationCounter · b354e344
      Dominik Inführ authored
      Moves accounting of allocation observers into the AllocationCounter
      class. This CL removes top_on_previous_step_ for counters that are
      increased regularly in the slow path of the allocation functions.
      
      AdvanceAllocationObservers() informs the AllocationCounter about
      allocated bytes, InvokeAllocationObservers() needs to be invoked when
      an allocation step is reached. NextBytes() returns the number of bytes
      until the next AllocationObserver::Step needs to run.
      
      Bug: v8:10315
      Change-Id: I8b6eb8719ab032d44ee0614d2a0f2645bfce9df6
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2320650
      Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69170}
      b354e344
  4. 30 Jul, 2020 2 commits
  5. 24 Jul, 2020 1 commit
  6. 23 Jul, 2020 1 commit
  7. 21 Jul, 2020 1 commit
  8. 16 Jul, 2020 1 commit
  9. 10 Jul, 2020 1 commit
  10. 07 Jul, 2020 1 commit
  11. 23 Jun, 2020 1 commit
  12. 17 Jun, 2020 2 commits
  13. 16 Jun, 2020 2 commits
  14. 08 Jun, 2020 1 commit
  15. 05 Jun, 2020 1 commit
  16. 03 Jun, 2020 1 commit
    • Michael Lippautz's avatar
      cppgc: Add HeapStatsCollector · ab671ee8
      Michael Lippautz authored
      This ports HeapStatsCollector (former ThreadHeapStatsCollector) from
      Blink. The CL only ports accounting of allocated object size which is
      needed for a simple growing strategy in a follow up.
      
      HeapStatsCollector is a global dependency for most sub components as
      it provides infrastructure for measuring time (through trace scopes)
      and space.
      
      The general idea of HeapStatsCollector is to act as sink where all sub
      components push time and space information. This information is then
      gathered and made available via an event that is implemented as POD.
      Time-dependent info is available through regular getters (pull) and
      observers (push).
      
      Change-Id: I40b4d76e1a40c56e5df1a7353622318cde730e26
      Bug: chromium:1056170
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2225902
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarAnton Bikineev <bikineev@chromium.org>
      Reviewed-by: 's avatarOmer Katz <omerkatz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#68150}
      ab671ee8
  17. 02 Jun, 2020 1 commit
  18. 26 May, 2020 3 commits
  19. 13 May, 2020 1 commit
  20. 12 May, 2020 2 commits
  21. 08 May, 2020 2 commits
    • Michael Lippautz's avatar
      cppgc: Rename unittest files · f701df1f
      Michael Lippautz authored
      Adjust suffix to "-unittest" like everywhere else in V8.
      
      Accept clang-format suggested changes.
      
      Bug: chromium:1056170
      Change-Id: I54c1396e79aff87c052233853d7fe560337eeecf
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2190410
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Commit-Queue: Omer Katz <omerkatz@chromium.org>
      Reviewed-by: 's avatarOmer Katz <omerkatz@chromium.org>
      Auto-Submit: Michael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67672}
      f701df1f
    • Michael Lippautz's avatar
      cppgc: Implement allocation on custom spaces · 611d1bb9
      Michael Lippautz authored
      This patch provides infrastructure to pin object types to specific
      spaces. This allows embedders to create mutual exclusive arenas for
      certain (base) types. In future, this will also be used to provide
      sliding-window compaction on certain custom spaces.
      
      We mainly preserve the existing infrastructure with the difference
      that spaces are now slightly more dynamic than in Blink as they are
      kept in a vector instead of a fixed-size array.
      
      The mechanism differs from Blink in that it does not allow the user
      object to call allocation methods directly but instead provides a
      trait that can be overridden to specify a custom space.
      
      The patch preserves templatization for objects that do not go into
      custom spaces to safe a branch in the allocation hot path.
      
      Change-Id: I08aa6932348e2d6258e19c4a32d189865f459f02
      Bug: chromium:1056170
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2187611
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarOmer Katz <omerkatz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67666}
      611d1bb9
  22. 07 May, 2020 3 commits
    • Omer Katz's avatar
      Reland "cppgc: Initial marking loop" · f197fd27
      Omer Katz authored
      This reverts commit dc1af6a2.
      
      Reason for revert: Diff in patchset 2
      
      Original change's description:
      > Revert "cppgc: Initial marking loop"
      > 
      > This reverts commit fb9a19fe.
      > 
      > Reason for revert: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20UBSan/11028
      > 
      > Original change's description:
      > > cppgc: Initial marking loop
      > > 
      > > This CL introduces:
      > > - Worklist
      > > - MarkingHandler to manage gc marking phase
      > > - Integration into CollectGarbage for atomic pause GC
      > > - MarkingVisitor for main thread marking
      > > 
      > > Still missing from this CL:
      > > - Proper handling for stack scanning
      > > - Handling of previously not fully constructed objects
      > > 
      > > Bug: chromium:1056170
      > > Change-Id: I70ac8534dfb898777cf3a06e3119cac8072174fd
      > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2170526
      > > Commit-Queue: Omer Katz <omerkatz@chromium.org>
      > > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#67642}
      > 
      > TBR=ulan@chromium.org,mlippautz@chromium.org,bikineev@chromium.org,omerkatz@chromium.org
      > 
      > Change-Id: I666481f44119771be685bf2555aa0dd5eda83a01
      > No-Presubmit: true
      > No-Tree-Checks: true
      > No-Try: true
      > Bug: chromium:1056170
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2187502
      > Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
      > Commit-Queue: Nico Hartmann <nicohartmann@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#67643}
      
      TBR=ulan@chromium.org,mlippautz@chromium.org,bikineev@chromium.org,omerkatz@chromium.org,nicohartmann@chromium.org
      
      # Not skipping CQ checks because this is a reland.
      
      Bug: chromium:1056170
      Change-Id: I54e963e2aeaaf16069bdcdb019c0ac65e28ef6e2
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2187733Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Commit-Queue: Omer Katz <omerkatz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67654}
      f197fd27
    • Nico Hartmann's avatar
      Revert "cppgc: Initial marking loop" · dc1af6a2
      Nico Hartmann authored
      This reverts commit fb9a19fe.
      
      Reason for revert: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20UBSan/11028
      
      Original change's description:
      > cppgc: Initial marking loop
      > 
      > This CL introduces:
      > - Worklist
      > - MarkingHandler to manage gc marking phase
      > - Integration into CollectGarbage for atomic pause GC
      > - MarkingVisitor for main thread marking
      > 
      > Still missing from this CL:
      > - Proper handling for stack scanning
      > - Handling of previously not fully constructed objects
      > 
      > Bug: chromium:1056170
      > Change-Id: I70ac8534dfb898777cf3a06e3119cac8072174fd
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2170526
      > Commit-Queue: Omer Katz <omerkatz@chromium.org>
      > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#67642}
      
      TBR=ulan@chromium.org,mlippautz@chromium.org,bikineev@chromium.org,omerkatz@chromium.org
      
      Change-Id: I666481f44119771be685bf2555aa0dd5eda83a01
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: chromium:1056170
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2187502Reviewed-by: 's avatarNico Hartmann <nicohartmann@chromium.org>
      Commit-Queue: Nico Hartmann <nicohartmann@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67643}
      dc1af6a2
    • Omer Katz's avatar
      cppgc: Initial marking loop · fb9a19fe
      Omer Katz authored
      This CL introduces:
      - Worklist
      - MarkingHandler to manage gc marking phase
      - Integration into CollectGarbage for atomic pause GC
      - MarkingVisitor for main thread marking
      
      Still missing from this CL:
      - Proper handling for stack scanning
      - Handling of previously not fully constructed objects
      
      Bug: chromium:1056170
      Change-Id: I70ac8534dfb898777cf3a06e3119cac8072174fd
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2170526
      Commit-Queue: Omer Katz <omerkatz@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67642}
      fb9a19fe
  23. 05 May, 2020 1 commit
  24. 29 Apr, 2020 1 commit
  25. 28 Apr, 2020 1 commit
  26. 24 Apr, 2020 1 commit
  27. 22 Apr, 2020 1 commit
  28. 17 Apr, 2020 2 commits
  29. 15 Apr, 2020 1 commit
  30. 14 Apr, 2020 1 commit