1. 24 Sep, 2020 1 commit
  2. 21 Aug, 2020 1 commit
    • Ulan Degenbaev's avatar
      Reland "[heap] Add concurrent marking write barrier" · e0ad32ce
      Ulan Degenbaev authored
      This is a reland of 1dd7f3a9
      
      Original change's description:
      > [heap] Add concurrent marking write barrier
      > 
      > A LocalHeap creates and owns an instance of MarkingBarrier. A pointer to
      > the marking barrier is set to a thread_local variable for a quick access.
      > 
      > WriteBarrier::MarkingSlow fetches the thread_local variable and invokes
      > the write barrier if it is set. Otherwise, it invokes the main thread
      > heap()->marking_barrier().
      > 
      > Each marking barrier has its own local marking worklist that is
      > published during scavenge (for updating pointers) and at finalization
      > of incremental marking.
      > 
      > Typed-slot recording does not work yet because it is not thread-safe.
      > It will be fixed in a subsequent CL.
      > 
      > Bug: v8:10315
      > Change-Id: I221a906436cd91e7405a253ce0eb06cf68046f2c
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2354809
      > Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
      > Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#69448}
      
      Bug: v8:10315
      Change-Id: I155bb0aadd53a5333672fb085b33d8da86f3f336
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2364509Reviewed-by: 's avatarDominik Inführ <dinfuehr@chromium.org>
      Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69517}
      e0ad32ce
  3. 18 Aug, 2020 2 commits
    • Maya Lekova's avatar
      Revert "[heap] Add concurrent marking write barrier" · 2f45e41a
      Maya Lekova authored
      This reverts commit 1dd7f3a9.
      
      Reason for revert: Breaks TSAN - https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20TSAN/32846?
      
      Original change's description:
      > [heap] Add concurrent marking write barrier
      > 
      > A LocalHeap creates and owns an instance of MarkingBarrier. A pointer to
      > the marking barrier is set to a thread_local variable for a quick access.
      > 
      > WriteBarrier::MarkingSlow fetches the thread_local variable and invokes
      > the write barrier if it is set. Otherwise, it invokes the main thread
      > heap()->marking_barrier().
      > 
      > Each marking barrier has its own local marking worklist that is
      > published during scavenge (for updating pointers) and at finalization
      > of incremental marking.
      > 
      > Typed-slot recording does not work yet because it is not thread-safe.
      > It will be fixed in a subsequent CL.
      > 
      > Bug: v8:10315
      > Change-Id: I221a906436cd91e7405a253ce0eb06cf68046f2c
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2354809
      > Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
      > Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#69448}
      
      TBR=ulan@chromium.org,dinfuehr@chromium.org
      
      Change-Id: I9719d565aaa313cd23f5e759dcef1246f475eb46
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:10315
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2362689Reviewed-by: 's avatarMaya Lekova <mslekova@chromium.org>
      Commit-Queue: Maya Lekova <mslekova@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69451}
      2f45e41a
    • Ulan Degenbaev's avatar
      [heap] Add concurrent marking write barrier · 1dd7f3a9
      Ulan Degenbaev authored
      A LocalHeap creates and owns an instance of MarkingBarrier. A pointer to
      the marking barrier is set to a thread_local variable for a quick access.
      
      WriteBarrier::MarkingSlow fetches the thread_local variable and invokes
      the write barrier if it is set. Otherwise, it invokes the main thread
      heap()->marking_barrier().
      
      Each marking barrier has its own local marking worklist that is
      published during scavenge (for updating pointers) and at finalization
      of incremental marking.
      
      Typed-slot recording does not work yet because it is not thread-safe.
      It will be fixed in a subsequent CL.
      
      Bug: v8:10315
      Change-Id: I221a906436cd91e7405a253ce0eb06cf68046f2c
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2354809
      Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarDominik Inführ <dinfuehr@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69448}
      1dd7f3a9
  4. 07 Jul, 2020 1 commit
  5. 13 Jan, 2020 1 commit
    • Dominik Inführ's avatar
      [objects] Add ArrayBufferExtension class · 69fda08a
      Dominik Inführ authored
      This CL adds the ArrayBufferExtension class, which is used to track
      JSArrayBuffers in a linked list. The ArrayBufferExtension is going to
      replace the ArrayBufferTracker in the future but is currently behind
      the v8_enable_array_buffer_extension feature flag.
      
      When enabled, each JSArrayBuffer has a corresponding native-heap
      allocated ArrayBufferExtension object. All extensions are currently
      tracked in a single linked list. During marking the GC not only
      marks the JSArrayBuffer but also its extension object. At the end of
      mark-compact the GC iterates all extensions and removes unmarked ones.
      
      Change-Id: I88298be255944d5ae1327c91b0d7f0fdbcd486d5
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1969791Reviewed-by: 's avatarPeter Marshall <petermarshall@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#65724}
      69fda08a
  6. 10 Dec, 2019 1 commit
  7. 24 Jun, 2019 1 commit
  8. 19 Jun, 2019 1 commit
  9. 07 Jun, 2019 1 commit
  10. 24 May, 2019 1 commit
  11. 14 May, 2019 1 commit
  12. 09 May, 2019 1 commit
  13. 02 May, 2019 1 commit
  14. 30 Apr, 2019 2 commits
  15. 01 Apr, 2019 1 commit
  16. 25 Mar, 2019 2 commits
  17. 09 Jan, 2019 1 commit
  18. 26 Dec, 2018 1 commit
  19. 20 Dec, 2018 2 commits
  20. 19 Dec, 2018 1 commit
    • Ulan Degenbaev's avatar
      [heap] Optimize marking of descriptor arrays. · 0400fc20
      Ulan Degenbaev authored
      Now a descriptor array tracks the number of descriptors that were
      already marked. The marking visitor of a map only marks the subset
      of the descriptors that it needs and that are not already marked.
      
      If a descriptor array is shared between M maps and has N descriptos,
      then the number of marking operations is reduced from O(M*N) to O(N).
      
      This patch also adds a marking barrier for descriptors.
      
      The marked descriptor counter in a descriptor array is not cleared
      after mark-compact GC. Instead, it embeds two bits from the global
      mark-compact epoch counter and is considered 0 if the bits do not match
      the current value of the global epoch counter.
      
      Bug: v8:8486
      Change-Id: I2a7822a6833f3143e1d351e5e4819c2ef2c07fb0
      Reviewed-on: https://chromium-review.googlesource.com/c/1382746
      Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#58372}
      0400fc20
  21. 05 Dec, 2018 1 commit
  22. 25 Nov, 2018 1 commit
  23. 13 Nov, 2018 1 commit
  24. 12 Nov, 2018 1 commit
  25. 26 Oct, 2018 1 commit
  26. 24 Oct, 2018 2 commits
  27. 17 Aug, 2018 1 commit
  28. 08 Aug, 2018 1 commit
  29. 26 Jul, 2018 1 commit