1. 24 Mar, 2022 1 commit
  2. 23 Mar, 2022 1 commit
  3. 21 Mar, 2022 1 commit
  4. 12 Oct, 2021 1 commit
    • Michael Lippautz's avatar
      cppgc: Add support for double-word aligned allocations · 62418750
      Michael Lippautz authored
      Adds support for double-word aligned, i.e., 8 bytes on 32-bit
      platforms and 16 bytes on 64-bit platforms, objects in Oilpan.
      
      Changes:
      - Adds generic alignment APIs and overrides.
      - Internal logic to support double-word aligned allocations on LABs.
      - Adjusts natural alignment of large objects to follow double-word.
      - Adds a new static_assert() that suggests users file a bug if higher
        alignment is required.
      - Statically checks that no allocations with non-default alignment
        target custom spaces that support compaction.
      
      Bug: v8:12295
      Change-Id: I05766ce2349055d5d78b68919be00e7ee91d5505
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3218150Reviewed-by: 's avatarAnton Bikineev <bikineev@chromium.org>
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#77348}
      62418750
  5. 12 Jul, 2021 1 commit
    • Michael Lippautz's avatar
      cppgc: Discard memory on memory reducing GCs · 0665568d
      Michael Lippautz authored
      Add discarded of memory on memory reducing garbage collections. In
      addition, add tracking of discarded memory and properly adjust the
      resident memory of heap dumps.
      
      - Memory is discarded during sweeping and the counter is persistent
        across garbage collection cycles.
      - Subsequent sweep calls are not supposed to touch the memory anymore.
      - As a simplification, discarded memory is tracked on page granularity
        and assumed to be fully paged in as soon as a page's free list entries
        are reused for allocation.
      
      Change-Id: Icfd58f49f3400c4df0d482e20326a0c43c1ca9f5
      Bug: chromium:1056170
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3015563
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarAnton Bikineev <bikineev@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#75677}
      0665568d
  6. 09 Jun, 2021 1 commit
  7. 26 May, 2021 1 commit
  8. 25 May, 2021 1 commit
  9. 12 May, 2021 1 commit
  10. 07 May, 2021 1 commit
  11. 14 Apr, 2021 1 commit
  12. 03 Mar, 2021 1 commit
  13. 11 Feb, 2021 1 commit
  14. 14 Jan, 2021 1 commit
  15. 22 Oct, 2020 1 commit
  16. 02 Oct, 2020 1 commit
  17. 10 Jul, 2020 2 commits
  18. 01 Jul, 2020 1 commit
  19. 17 Jun, 2020 1 commit
  20. 15 Jun, 2020 1 commit
  21. 11 Jun, 2020 1 commit
  22. 10 Jun, 2020 1 commit
  23. 26 May, 2020 3 commits
  24. 14 May, 2020 3 commits
    • Omer Katz's avatar
      Reland "cppgc: Stack scanning using ObjectStartBitmap" · 93059842
      Omer Katz authored
      This reverts commit 580917d2.
      
      Reason for revert: fix in patchset 2
      
      Original change's description:
      > Revert "cppgc: Stack scanning using ObjectStartBitmap"
      > 
      > This reverts commit d3a72e3c.
      > 
      > Reason for revert: MSAN failures (https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/32360)
      > 
      > Original change's description:
      > > cppgc: Stack scanning using ObjectStartBitmap
      > > 
      > > This CL implements stack scanning for cppgc.
      > > Given a value on the stack, the MarkingVisitor uses
      > > PageBackend::Lookup to checks whether that address is on
      > > the heap. If it is, BasePage::TryObjectHeaderFromInnerAddress
      > > (introduced in this CL) is used to get the relevant object
      > > header. Note that random addresses on the heap might point to
      > > free memory, object-start-bitmap, etc.
      > > 
      > > If a valid object header is found:
      > > * If the object is not in construction, the GCInfoIndex is used
      > > the get the relevant Trace method and the object is traced.
      > > * Otherwise, the object is conservatively scanned - i.e. the
      > > payload of the object is iterated word by word and each word is
      > > treated as a possible pointer.
      > > 
      > > Only addresses pointing to the payload on non-free objects are
      > > traced.
      > > 
      > > BasePage::TryObjectHeaderFromInnerAddress assumes on LAB on the
      > > relevant space, thus all LABs are reset before scanning the stack.
      > > 
      > > Bug: chromium:1056170
      > > Change-Id: I172850f6f1bbb6f0efca8e44ad8fdfe222977b9f
      > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2190426
      > > Commit-Queue: Omer Katz <omerkatz@chromium.org>
      > > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > > Reviewed-by: Anton Bikineev <bikineev@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#67795}
      > 
      > TBR=ulan@chromium.org,mlippautz@chromium.org,bikineev@chromium.org,omerkatz@chromium.org
      > 
      > Change-Id: I3caef6f9f55911fd1a86e895c3495d1b98b1eac2
      > No-Presubmit: true
      > No-Tree-Checks: true
      > No-Try: true
      > Bug: chromium:1056170
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2201136
      > Reviewed-by: Leszek Swirski <leszeks@chromium.org>
      > Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#67796}
      
      TBR=ulan@chromium.org,mlippautz@chromium.org,leszeks@chromium.org,bikineev@chromium.org,omerkatz@chromium.org
      
      # Not skipping CQ checks because this is a reland.
      
      Bug: chromium:1056170
      Change-Id: If7ea4fe5cb794c07544d5545f5d6548e3375d3ae
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2201137Reviewed-by: 's avatarOmer Katz <omerkatz@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarAnton Bikineev <bikineev@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Commit-Queue: Omer Katz <omerkatz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67803}
      93059842
    • Leszek Swirski's avatar
      Revert "cppgc: Stack scanning using ObjectStartBitmap" · 580917d2
      Leszek Swirski authored
      This reverts commit d3a72e3c.
      
      Reason for revert: MSAN failures (https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/32360)
      
      Original change's description:
      > cppgc: Stack scanning using ObjectStartBitmap
      > 
      > This CL implements stack scanning for cppgc.
      > Given a value on the stack, the MarkingVisitor uses
      > PageBackend::Lookup to checks whether that address is on
      > the heap. If it is, BasePage::TryObjectHeaderFromInnerAddress
      > (introduced in this CL) is used to get the relevant object
      > header. Note that random addresses on the heap might point to
      > free memory, object-start-bitmap, etc.
      > 
      > If a valid object header is found:
      > * If the object is not in construction, the GCInfoIndex is used
      > the get the relevant Trace method and the object is traced.
      > * Otherwise, the object is conservatively scanned - i.e. the
      > payload of the object is iterated word by word and each word is
      > treated as a possible pointer.
      > 
      > Only addresses pointing to the payload on non-free objects are
      > traced.
      > 
      > BasePage::TryObjectHeaderFromInnerAddress assumes on LAB on the
      > relevant space, thus all LABs are reset before scanning the stack.
      > 
      > Bug: chromium:1056170
      > Change-Id: I172850f6f1bbb6f0efca8e44ad8fdfe222977b9f
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2190426
      > Commit-Queue: Omer Katz <omerkatz@chromium.org>
      > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > Reviewed-by: Anton Bikineev <bikineev@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#67795}
      
      TBR=ulan@chromium.org,mlippautz@chromium.org,bikineev@chromium.org,omerkatz@chromium.org
      
      Change-Id: I3caef6f9f55911fd1a86e895c3495d1b98b1eac2
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: chromium:1056170
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2201136Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67796}
      580917d2
    • Omer Katz's avatar
      cppgc: Stack scanning using ObjectStartBitmap · d3a72e3c
      Omer Katz authored
      This CL implements stack scanning for cppgc.
      Given a value on the stack, the MarkingVisitor uses
      PageBackend::Lookup to checks whether that address is on
      the heap. If it is, BasePage::TryObjectHeaderFromInnerAddress
      (introduced in this CL) is used to get the relevant object
      header. Note that random addresses on the heap might point to
      free memory, object-start-bitmap, etc.
      
      If a valid object header is found:
      * If the object is not in construction, the GCInfoIndex is used
      the get the relevant Trace method and the object is traced.
      * Otherwise, the object is conservatively scanned - i.e. the
      payload of the object is iterated word by word and each word is
      treated as a possible pointer.
      
      Only addresses pointing to the payload on non-free objects are
      traced.
      
      BasePage::TryObjectHeaderFromInnerAddress assumes on LAB on the
      relevant space, thus all LABs are reset before scanning the stack.
      
      Bug: chromium:1056170
      Change-Id: I172850f6f1bbb6f0efca8e44ad8fdfe222977b9f
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2190426
      Commit-Queue: Omer Katz <omerkatz@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarAnton Bikineev <bikineev@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67795}
      d3a72e3c
  25. 13 May, 2020 1 commit
  26. 12 May, 2020 2 commits
  27. 29 Apr, 2020 1 commit
  28. 28 Apr, 2020 1 commit
  29. 09 Apr, 2020 1 commit