1. 15 Feb, 2019 1 commit
  2. 05 Feb, 2019 1 commit
  3. 08 Dec, 2018 1 commit
  4. 12 Oct, 2018 1 commit
  5. 13 Sep, 2018 1 commit
  6. 12 Sep, 2018 3 commits
  7. 11 Sep, 2018 2 commits
  8. 30 Aug, 2018 1 commit
  9. 28 Aug, 2018 1 commit
  10. 17 Aug, 2018 1 commit
  11. 14 Aug, 2018 2 commits
  12. 25 Jul, 2018 3 commits
  13. 16 Jul, 2018 1 commit
  14. 05 Jul, 2018 1 commit
  15. 29 Jun, 2018 2 commits
  16. 27 Jun, 2018 1 commit
  17. 26 Jun, 2018 4 commits
  18. 21 Jun, 2018 2 commits
    • Peter Marshall's avatar
      [gc] Attach page to LocalArrayBufferTracker rather than space · 11926e6e
      Peter Marshall authored
      Each local ABT is logically for one page. We passed the space in to the
      constructor, but this is wrong because the space a page is in can
      change, e.g. for compaction pages.
      
      Instead, pass the page to the local ABT constructor and always get the
      space from this. To do this we need to push the AllocateLocalTracker()
      helper and friends down to Page, rather than its superclass MemoryChunk.
      
      Unfortunately, we need to keep ReleaseLocalTracker() on MemoryChunk even
      though only Pages can have local trackers, because we can't do virtual
      dispatch on MemoryChunk::ReleaseAllocatedMemory() which would allow us
      to clean up the tracker memory nicely for pages only.
      
      We also have to make sure we update external bytes accounting properly
      when swapping spaces, as in SemiSpace::Swap().
      
      Change-Id: Iff02e41dd12a6b04a57fcc32f9e2b4f049fcbc24
      Reviewed-on: https://chromium-review.googlesource.com/1107635
      Commit-Queue: Peter Marshall <petermarshall@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#53930}
      11926e6e
    • Peter Marshall's avatar
      [gc] Store the backing store pointer in the ArrayBufferTracker · 4d93fae9
      Peter Marshall authored
      Currently we have to access the unreachable ArrayBuffer object to get
      the backing store pointer when we want to free it. This means we need
      the original ArrayBuffer object to stay alive until we collect all of
      the pointers to free (currently done sequentially after marking).
      
      We want to move this step to a background task that does not block GC
      finishing - to do that we need the backing store pointers so that the
      original page (where the ArrayBuffers live) can be freed.
      
      Change-Id: Ifaf070d777939cb23c46da637a25d75f9c863bd8
      Reviewed-on: https://chromium-review.googlesource.com/1102434
      Commit-Queue: Peter Marshall <petermarshall@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#53915}
      4d93fae9
  19. 15 May, 2018 1 commit
    • Wez's avatar
      [heap] Replace retained_size() with ExternalBackingStoreBytes(). · aca33312
      Wez authored
      ArrayBuffer memory allocated off-heap was previously tracked by a test-
      only retained_size() field on each LocalArrayBufferTracker.
      
      Changes in off-heap ArrayBuffer memory usage are now reported to the
      Space with which the ArrayBuffer is associated, so that the value is
      cheaply available to include in e.g. GC limit calculations, via a new
      getter, ExternalBackingStoreBytes().
      
      Changes to external ArrayBuffer backing-store allocations are tracked in
      an AtomicNumber associated with each Space, to allow for ArrayBuffers
      being concurrently moved or freed from multiple Pages in the same Space
      during sweeps & compactions.
      
      Bug: chromium:837583
      Change-Id: I8b1b6addd5cd05533d8da55ca813e134bc36e181
      Reviewed-on: https://chromium-review.googlesource.com/1052347
      Commit-Queue: Wez <wez@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#53192}
      aca33312
  20. 02 May, 2018 1 commit
    • Michael Lippautz's avatar
      [heap] Fix ArrayBufferTracker accessing already swept byte length · 55d00c95
      Michael Lippautz authored
      The tracker needs to maintain the byte length as there is no order guarantee
      when sweeping pages and the byte length may be a HeapNumber that is stored on a
      different page.
      
      The abstraction for ArrayBuffers is left untouched. We distinguish between the
      following cases:
      1. Regular AB (backing_store and bye_length should be used)
      2. AB allocated using kReservation but not part of wasm
      3. AB allocated using kReservation and part of wasm
      
      In practice, 2. does not exist, but we still maintain "allocation_base" and
      "allocation_length" which fall back to backing_store and byte_length in this
      case. The problematic part is that they look like innocent getters on the
      object but actually refer to different data structures or on-heap objects.
      
      Since 2. does not exist, and 3. looks up the bounds in its own tracker, it is
      fine for ArrayBufferTracker to pass backing_store and tracked byte_length.
      
      Bug: v8:7701
      Change-Id: Ib89d5fe94fce5cef8e5d8343a5415a3b9ad0deba
      Reviewed-on: https://chromium-review.googlesource.com/1039385Reviewed-by: 's avatarBen Titzer <titzer@chromium.org>
      Reviewed-by: 's avatarHannes Payer <hpayer@chromium.org>
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52923}
      55d00c95
  21. 22 Mar, 2018 1 commit
    • Eric Holk's avatar
      [heap] track byte_length in ArrayBufferTracker · 7df495bb
      Eric Holk authored
      This changes ArrayBufferTracker to count array buffer byte length instead of
      allocation length. Byte length better approximates actual memory pressure
      because it refers to how many bytes are actually committed, whereas for
      allocation length, these bytes may be reserved but not committed.
      
      Note that we still need to be careful about address space exhaustion. Most
      address space is used by WebAssembly's guard regions. These are now managed by
      WasmMemoryTracker to ensure we do not consume too much address space.
      
      As a side effect, this CL fixes v8:7576 because byte_length() does not need to
      access the is_wasm_memory field whereas allocation_length() does.
      
      Bug: v8:7576
      Change-Id: Ib974e86ec61e170930c835f0f0ad03e89dc02854
      Reviewed-on: https://chromium-review.googlesource.com/973884Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Commit-Queue: Eric Holk <eholk@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52155}
      7df495bb
  22. 25 Oct, 2017 1 commit
  23. 19 Oct, 2017 1 commit
    • Michael Lippautz's avatar
      Reland "Reland "[heap] ArrayBufferTracker: Only consider committed size"" · da9691de
      Michael Lippautz authored
      Includes the fix for aborted compaction pages that now require processing 
      with all other ArrayBufferTrackers because the considered length (byteLength)
      may be a HeapNumber allocated on a compacted page.
      
      This is a reland of 46f9d5a2
      Original change's description:
      > Reland "[heap] ArrayBufferTracker: Only consider committed size"
      > 
      > This is a reland of 6488c9e5
      > Original change's description:
      > > [heap] ArrayBufferTracker: Only consider committed size
      > > 
      > > - Only consider commited size of ABs.
      > > - Compute freed memory from retained sizes byte length might be a
      > >   HeapNumber and thus prohibited from accessing (as it may be already
      > >   collected).
      > > 
      > > CQ_INCLUDE_TRYBOTS=master.tryserver.v8:v8_linux64_tsan_rel;master.tryserver.v8:v8_linux64_tsan_concurrent_marking_rel_ng;master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel
      > > 
      > > Bug: chromium:775896
      > > Change-Id: Ia0bed66afac5e4d5ed58194950a55156e19cec72
      > > Reviewed-on: https://chromium-review.googlesource.com/725722
      > > Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      > > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#48699}
      > 
      > Bug: chromium:775896
      > Change-Id: Ibbec1ffa8fe90d3668f0fe0c1b8b9997b5fd644e
      > Cq-Include-Trybots: master.tryserver.v8:v8_linux64_tsan_rel;master.tryserver.v8:v8_linux64_tsan_concurrent_marking_rel_ng;master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel
      > Reviewed-on: https://chromium-review.googlesource.com/726579
      > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#48707}
      
      Bug: chromium:775896
      Change-Id: I9b7b2ae865ef6cdb25692abb65108df5c2ecc157
      Cq-Include-Trybots: master.tryserver.v8:v8_linux64_tsan_rel;master.tryserver.v8:v8_linux64_tsan_concurrent_marking_rel_ng;master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel
      Reviewed-on: https://chromium-review.googlesource.com/726800Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48753}
      da9691de
  24. 18 Oct, 2017 4 commits
    • Michael Lippautz's avatar
      Revert "Reland "[heap] ArrayBufferTracker: Only consider committed size"" · e1e5f6cf
      Michael Lippautz authored
      This reverts commit 46f9d5a2.
      
      Reason for revert: Aborted compaction pages require separate handling now that we consider byteLength which is a Number.
      
      Original change's description:
      > Reland "[heap] ArrayBufferTracker: Only consider committed size"
      > 
      > This is a reland of 6488c9e5
      > Original change's description:
      > > [heap] ArrayBufferTracker: Only consider committed size
      > > 
      > > - Only consider commited size of ABs.
      > > - Compute freed memory from retained sizes byte length might be a
      > >   HeapNumber and thus prohibited from accessing (as it may be already
      > >   collected).
      > > 
      > > CQ_INCLUDE_TRYBOTS=master.tryserver.v8:v8_linux64_tsan_rel;master.tryserver.v8:v8_linux64_tsan_concurrent_marking_rel_ng;master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel
      > > 
      > > Bug: chromium:775896
      > > Change-Id: Ia0bed66afac5e4d5ed58194950a55156e19cec72
      > > Reviewed-on: https://chromium-review.googlesource.com/725722
      > > Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      > > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#48699}
      > 
      > Tbr: ulan@chromium.org
      > Bug: chromium:775896
      > Change-Id: Ibbec1ffa8fe90d3668f0fe0c1b8b9997b5fd644e
      > Cq-Include-Trybots: master.tryserver.v8:v8_linux64_tsan_rel;master.tryserver.v8:v8_linux64_tsan_concurrent_marking_rel_ng;master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel
      > Reviewed-on: https://chromium-review.googlesource.com/726579
      > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#48707}
      
      TBR=ulan@chromium.org,mlippautz@chromium.org
      
      Change-Id: If678ad73326ceb24e85f3a7bf6350df05991005f
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: chromium:775896
      Cq-Include-Trybots: master.tryserver.v8:v8_linux64_tsan_rel;master.tryserver.v8:v8_linux64_tsan_concurrent_marking_rel_ng;master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel
      Reviewed-on: https://chromium-review.googlesource.com/726799Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48708}
      e1e5f6cf
    • Michael Lippautz's avatar
      Reland "[heap] ArrayBufferTracker: Only consider committed size" · 46f9d5a2
      Michael Lippautz authored
      This is a reland of 6488c9e5
      Original change's description:
      > [heap] ArrayBufferTracker: Only consider committed size
      > 
      > - Only consider commited size of ABs.
      > - Compute freed memory from retained sizes byte length might be a
      >   HeapNumber and thus prohibited from accessing (as it may be already
      >   collected).
      > 
      > CQ_INCLUDE_TRYBOTS=master.tryserver.v8:v8_linux64_tsan_rel;master.tryserver.v8:v8_linux64_tsan_concurrent_marking_rel_ng;master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel
      > 
      > Bug: chromium:775896
      > Change-Id: Ia0bed66afac5e4d5ed58194950a55156e19cec72
      > Reviewed-on: https://chromium-review.googlesource.com/725722
      > Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#48699}
      
      Tbr: ulan@chromium.org
      Bug: chromium:775896
      Change-Id: Ibbec1ffa8fe90d3668f0fe0c1b8b9997b5fd644e
      Cq-Include-Trybots: master.tryserver.v8:v8_linux64_tsan_rel;master.tryserver.v8:v8_linux64_tsan_concurrent_marking_rel_ng;master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel
      Reviewed-on: https://chromium-review.googlesource.com/726579Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48707}
      46f9d5a2
    • Michael Lippautz's avatar
      Revert "[heap] ArrayBufferTracker: Only consider committed size" · d10b6218
      Michael Lippautz authored
      This reverts commit 6488c9e5.
      
      Reason for revert: wasm grow memory test fails; requires investigation.
      
      https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20shared/builds/20548/steps/Check/logs/grow-memory
      
      Original change's description:
      > [heap] ArrayBufferTracker: Only consider committed size
      > 
      > - Only consider commited size of ABs.
      > - Compute freed memory from retained sizes byte length might be a
      >   HeapNumber and thus prohibited from accessing (as it may be already
      >   collected).
      > 
      > CQ_INCLUDE_TRYBOTS=master.tryserver.v8:v8_linux64_tsan_rel;master.tryserver.v8:v8_linux64_tsan_concurrent_marking_rel_ng;master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel
      > 
      > Bug: chromium:775896
      > Change-Id: Ia0bed66afac5e4d5ed58194950a55156e19cec72
      > Reviewed-on: https://chromium-review.googlesource.com/725722
      > Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#48699}
      
      TBR=ulan@chromium.org,mlippautz@chromium.org
      
      Change-Id: I0f8b28b876b09f149ff330e532e57cf1871e3961
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: chromium:775896
      Cq-Include-Trybots: master.tryserver.v8:v8_linux64_tsan_rel;master.tryserver.v8:v8_linux64_tsan_concurrent_marking_rel_ng;master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel
      Reviewed-on: https://chromium-review.googlesource.com/726440Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48700}
      d10b6218
    • Michael Lippautz's avatar
      [heap] ArrayBufferTracker: Only consider committed size · 6488c9e5
      Michael Lippautz authored
      - Only consider commited size of ABs.
      - Compute freed memory from retained sizes byte length might be a
        HeapNumber and thus prohibited from accessing (as it may be already
        collected).
      
      CQ_INCLUDE_TRYBOTS=master.tryserver.v8:v8_linux64_tsan_rel;master.tryserver.v8:v8_linux64_tsan_concurrent_marking_rel_ng;master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel
      
      Bug: chromium:775896
      Change-Id: Ia0bed66afac5e4d5ed58194950a55156e19cec72
      Reviewed-on: https://chromium-review.googlesource.com/725722
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48699}
      6488c9e5
  25. 11 Oct, 2017 2 commits