1. 09 Feb, 2021 2 commits
  2. 08 Feb, 2021 1 commit
  3. 05 Feb, 2021 1 commit
    • Michael Lippautz's avatar
      cppgc: Fix low-level write barriers · 65893d84
      Michael Lippautz authored
      Some types of supported low-level write barrier only requires passing
      a slot, which may not be even part of a heap object but stack.
      
      This complicates the situation, as even with caged heap, there's no
      way to distinguish a stack and heap slot.
      
      Solve this by passing an optional callback that can lazy be used to
      get the heap. This can be used by the embedder to retrieve the heap
      from e.g. TLS if needed.  This aligns the barrier with Oilpan in
      Blink.
      
      Bug: chromium:1056170
      Change-Id: I1e5d022ab17a2614a67b6ef39ed12691bcbd0ac6
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2675924Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarOmer Katz <omerkatz@chromium.org>
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#72550}
      65893d84
  4. 03 Feb, 2021 1 commit
  5. 02 Feb, 2021 1 commit
  6. 29 Jan, 2021 2 commits
  7. 28 Jan, 2021 4 commits
  8. 27 Jan, 2021 5 commits
  9. 22 Jan, 2021 5 commits
  10. 19 Jan, 2021 1 commit
  11. 14 Jan, 2021 1 commit
  12. 10 Dec, 2020 1 commit
  13. 27 Nov, 2020 1 commit
  14. 26 Nov, 2020 2 commits
  15. 25 Nov, 2020 1 commit
    • Michael Lippautz's avatar
      cppgc: Refactor write barriers · e8813049
      Michael Lippautz authored
      Refactor write barriers and split calls, as e.g. DijkstraWriteBarrier
      also contained logic for recording slots (cards) for the young
      generation.
      
      The new API exposes the following:
      - GetWriteBarrierType(): Retrieving the type of barrier that must be
        emitted;
      - DijkstraWriteBarrier(), DijkstraWriteBarrierRange(): Dijkstra-style
        write barriers;
      - SteeleWriteBarrier(): Steele-style write barrier;
      - GenerationalBarrier(): Barrier for recording slots when using
        multiple generations;
      
      Compilers running with -O3 optimize the DijkstraWriteBarrierPolicy
      down to the same instructions as before the split.
      
      Change-Id: If68839cc6357b2f568986c9ce8ca753b1e96a70a
      Bug: chromium:1056170
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2557514
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarOmer Katz <omerkatz@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#71407}
      e8813049
  16. 24 Nov, 2020 2 commits
    • Michael Lippautz's avatar
      cppgc: Expose write barriers · 3b82f4c6
      Michael Lippautz authored
      Exposes an opaque handle for uniformly (cppgc and V8) referring to an
      instance of a heap.
      
      Exposes a set of raw write barriers for advances embedders through
      subtle::HeapConsistency which is a mirror into write barrier internals.
      The following barriers are exposed:
      - DijkstraWriteBarrier: Regular Dijkstra-style write barrier (add to
        wavefront);
      - DijkstraWriteBarrierRange: Same as DijkstraWriteBarrier but
        operating on a range of slots that are composite (inlined) objects;
      - SteeleWriteBarrier: Regular Steele-style write barrier (retreating
        wavefront);
      
      Change-Id: Ib5ac280204686bf887690f72df1cdb506ea6ef70
      Bug: chromium:1056170
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2554601Reviewed-by: 's avatarOmer Katz <omerkatz@chromium.org>
      Reviewed-by: 's avatarAnton Bikineev <bikineev@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#71381}
      3b82f4c6
    • Omer Katz's avatar
      cppgc: Fix cppgc build · 0e0d1b0d
      Omer Katz authored
      The CPPGC_BUILD_IN_V8 define (used for tracing) isn't propagated from
      v8_base_without_compiler to cppgc_base, which breaks build with
      perfetto. Instead use a gn args to specify standalone builds (defaulted
      to false) and use that to choose the right tracing implementation.
      
      Bug: chromium:1056170
      Change-Id: I70bce819d45fb133b6f932a50a5d027e39f3e5b9
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2555007
      Auto-Submit: Omer Katz <omerkatz@chromium.org>
      Reviewed-by: 's avatarHannes Payer <hpayer@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Commit-Queue: Omer Katz <omerkatz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#71356}
      0e0d1b0d
  17. 20 Nov, 2020 1 commit
    • Omer Katz's avatar
      Reland "cppgc: Use tracing scopes" · 2c66a0ef
      Omer Katz authored
      This reverts commit 64bf4c53.
      
      Reason for revert: fix in patchset 2
      
      Original change's description:
      > Revert "cppgc: Use tracing scopes"
      >
      > This reverts commit 548fe208.
      >
      > Reason for revert: Issues on Mac64: https://ci.chromium.org/p/v8/builders/ci/V8%20Mac64%20-%20debug/31710
      >
      > Original change's description:
      > > cppgc: Use tracing scopes
      > >
      > > The scopes themselves mostly have the same coverage as current scopes in
      > > blink. A few exception due to encapsulation exist and are highlighted as
      > > comments on the CL.
      > >
      > > Bug: chromium:1056170
      > > Change-Id: I48af2cfdfd53a8caa1ab5d805d377f6f13a825bc
      > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2540552
      > > 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@{#71285}
      >
      > TBR=ulan@chromium.org,mlippautz@chromium.org,omerkatz@chromium.org
      >
      > Change-Id: I20dce9309dcaeff6ea61bdc51df3a2f62c2a103f
      > No-Presubmit: true
      > No-Tree-Checks: true
      > No-Try: true
      > Bug: chromium:1056170
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2550782
      > Reviewed-by: Clemens Backes <clemensb@chromium.org>
      > Commit-Queue: Clemens Backes <clemensb@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#71289}
      
      TBR=ulan@chromium.org,mlippautz@chromium.org,clemensb@chromium.org,omerkatz@chromium.org
      
      # Not skipping CQ checks because this is a reland.
      
      Bug: chromium:1056170
      Change-Id: I9c57cdb3b0d310366cdf3e6fbcd1254fdc363163
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2550666
      Auto-Submit: Omer Katz <omerkatz@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#71305}
      2c66a0ef
  18. 19 Nov, 2020 4 commits
  19. 11 Nov, 2020 1 commit
  20. 23 Oct, 2020 1 commit
    • Omer Katz's avatar
      Reland "cppgc: Port backing store compaction." · b5979eaa
      Omer Katz authored
      This is a reland of 90ea9b35
      
      Original change's description:
      > cppgc: Port backing store compaction.
      >
      > This CL ports the existing backing store compaction algorithm from
      > blink. It does not attempt to improve on the existing algorithm.
      >
      > Currently only unified heap uses the compaction implementation. It is
      > never triggered through standalone GCs.
      >
      > The compaction implementation resides within an internal "subtle" namespace.
      >
      > Bug: v8:10990
      > Change-Id: I4aa781db1b711e7aafc34234c4fb142de84394d7
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2485228
      > Commit-Queue: Omer Katz <omerkatz@chromium.org>
      > Reviewed-by: Anton Bikineev <bikineev@chromium.org>
      > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#70714}
      
      Bug: v8:10990
      Change-Id: I527c2042a26648d058bfe4d355527cce9a3eeadc
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2492331
      Commit-Queue: Omer Katz <omerkatz@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#70736}
      b5979eaa
  21. 22 Oct, 2020 2 commits