1. 03 Mar, 2022 1 commit
  2. 17 Feb, 2022 1 commit
    • Benoît Lizé's avatar
      [heap/cppgc] Disable guard pages on ARM64 macOS · 8f3c3419
      Benoît Lizé authored
      Guard pages are 4k areas at the beginning and end of each oilpan page
      (128kiB) which are meant to be inaccessible. However on ARM64 macOS, the
      OS page size is 16kiB, meaning that these are not inaccessible. But we
      do pay for these, as they are part of the first and last OS
      page. Meaning that we effectively waste 2 * 4kiB = 6.25% of each Oilpan
      page.
      
      Since these are not serving their purpose, disable them on this
      platform. Another fix could be to make the guard page 16kiB, but given
      that the entire oilpan page is 128kiB, this may have adverse effects on
      e.g. fragmentation.
      
      Note that this doesn't regress security, as the regions were never
      protected to begin with on this platform.
      
      Bug: chromium:1298417
      Change-Id: Iad5d05670962780e6d1eeab2bb8a331deb7aa1f3
      Cq-Include-Trybots: luci.v8.try:v8_linux_arm64_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3471558Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Commit-Queue: Benoit Lize <lizeb@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#79151}
      8f3c3419
  3. 08 Mar, 2021 1 commit
  4. 22 Oct, 2020 1 commit
  5. 17 Jun, 2020 1 commit
  6. 29 May, 2020 1 commit
  7. 22 Apr, 2020 1 commit
  8. 14 Apr, 2020 1 commit
    • Michael Lippautz's avatar
      Reland "cppgc: Add page memory allocation backend" · 67ea6211
      Michael Lippautz authored
      This is a port of src/components/gc that was added recently.
      
      Differences:
      - Added back bucketing to the page pool, as that guarantees that
        arenas used for specific types do not have their pages used by other
        arenas.
      - Replaced base::flat_map with std::map. This may cause performance
        regressions when using PageMemoryRegionTree in hot paths. A
        vector-like representation may be used to fix such a regression
      
      This reverts commit a056cea5.
      
      Bug: chromium:1056170
      Change-Id: Iffb8b0d91c8cca1815d7a1cda9486e7716aea75f
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2144060
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarAnton Bikineev <bikineev@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67117}
      67ea6211
  9. 09 Apr, 2020 4 commits
  10. 27 Mar, 2020 1 commit
  11. 25 Mar, 2020 1 commit
    • Michael Lippautz's avatar
      cppgc: Add HeapObjectHeader · 0a64a52b
      Michael Lippautz authored
      This adds HeapObjectHeader, a meta object that is put in front of
      every managed object. HeapObjectHeader provides accessors for:
      1. GCInfoIndex
      2. In construction bit
      3. size
      4. Mark bit
      
      Meta info is distributed among two uint16_t fields as (1.,2.) and
      (3.,4.). This is convenient as the non-bit accessors (size,
      GCInfoIndex) are constant during marking.
      
      Object layout see heap-object-header.h.
      
      Note: The current implementation does not bypass ASAN poisoning and
      assumes an unpoisoned header whenever performing an access.
      
      Bug: chromium:1056170
      Change-Id: I753f15467ed5c2b22b47e64d3aa5a3c1baddf8e1
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2116031
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarOmer Katz <omerkatz@chromium.org>
      Reviewed-by: 's avatarHannes Payer <hpayer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#66861}
      0a64a52b