1. 13 Feb, 2017 1 commit
  2. 27 Jan, 2017 1 commit
  3. 08 Dec, 2016 1 commit
  4. 30 Nov, 2016 1 commit
  5. 29 Nov, 2016 3 commits
  6. 24 Nov, 2016 2 commits
  7. 11 Nov, 2016 1 commit
  8. 28 Oct, 2016 2 commits
  9. 31 Mar, 2016 2 commits
  10. 25 Feb, 2016 1 commit
  11. 24 Feb, 2016 1 commit
    • ulan's avatar
      Revert of Replace slots buffer with remembered set. (patchset #14 id:250001 of... · 9146bc5e
      ulan authored
      Revert of Replace slots buffer with remembered set. (patchset #14 id:250001 of https://codereview.chromium.org/1703823002/ )
      
      Reason for revert:
      Revert because of canary crashes: crbug.com/589413
      
      Original issue's description:
      > Replace slots buffer with remembered set.
      >
      > Slots pointing to evacuation candidates are now recorded in the new RememberedSet<OLD_TO_OLD>.
      >
      > The remembered set is extended to support typed slots.
      >
      > During parallel evacuation all migration slots are recorded in local slots buffers.
      > After evacuation all local slots are added to the remembered set.
      >
      > BUG=chromium:578883
      > LOG=NO
      >
      > Committed: https://crrev.com/2285a99ef6f7d52f4f0c4d88a7db4224443ee152
      > Cr-Commit-Position: refs/heads/master@{#34212}
      
      TBR=jochen@chromium.org,hpayer@chromium.org,mlippautz@chromium.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=chromium:578883
      
      Review URL: https://codereview.chromium.org/1725073003
      
      Cr-Commit-Position: refs/heads/master@{#34238}
      9146bc5e
  12. 23 Feb, 2016 1 commit
    • ulan's avatar
      Replace slots buffer with remembered set. · 2285a99e
      ulan authored
      Slots pointing to evacuation candidates are now recorded in the new RememberedSet<OLD_TO_OLD>.
      
      The remembered set is extended to support typed slots.
      
      During parallel evacuation all migration slots are recorded in local slots buffers.
      After evacuation all local slots are added to the remembered set.
      
      BUG=chromium:578883
      LOG=NO
      
      Review URL: https://codereview.chromium.org/1703823002
      
      Cr-Commit-Position: refs/heads/master@{#34212}
      2285a99e
  13. 16 Feb, 2016 1 commit
    • ulan's avatar
      Add a generic remembered set class. · 4fdc19ae
      ulan authored
      This new class provides a unified interface for recording and iterating slots in store and slots buffers:
      
      RememberedSet<OLD_TO_NEW>::Insert(page, slot);
      RememberedSet<OLD_TO_OLD>::Insert(page, slot);
      
      RememberedSet<OLD_TO_NEW>::Iterate(heap, callback);
      RememberedSet<OLD_TO_OLD>::Iterate(heap, callback);
      
      After this change the store buffer is responsible only for collecting slots from the generated code.
      
      Subsequent CLs will remove the slots buffer.
      
      BUG=chromium:578883
      LOG=NO
      
      Review URL: https://codereview.chromium.org/1683653002
      
      Cr-Commit-Position: refs/heads/master@{#34031}
      4fdc19ae
  14. 09 Feb, 2016 1 commit
  15. 08 Feb, 2016 1 commit
    • ulan's avatar
      New page local store buffer. · bb883395
      ulan authored
      This replaces the global remembered set with per-page remembered sets.
      
      Each page in the old space, map space, and large object space keeps track of
      the set of slots in the page pointing to the new space.
      
      The data structure for storing slot sets is a two-level bitmap, which allows
      us to remove the store buffer overflow and SCAN_ON_SCAVENGE logic.
      
      Design doc: https://goo.gl/sMKCf7
      
      BUG=chromium:578883
      LOG=NO
      
      Review URL: https://codereview.chromium.org/1608583002
      
      Cr-Commit-Position: refs/heads/master@{#33806}
      bb883395
  16. 27 Jan, 2016 2 commits
    • mlippautz's avatar
      Reland of "[heap] Parallel newspace evacuation, semispace copy, and compaction \o/" · 004ce08d
      mlippautz authored
      This reverts commit 85ba94f2.
      
      All parallelism can be turned off using --predictable, or --noparallel-compaction.
      
      This patch completely parallelizes
       - semispace copy: from space -> to space (within newspace)
       - newspace evacuation: newspace -> oldspace
       - oldspace compaction: oldspace -> oldspace
      
      Previously newspace has been handled sequentially (semispace copy, newspace
      evacuation) before compacting oldspace in parallel. However, on a high level
      there are no dependencies between those two actions, hence we parallelize them
      altogether. We base the number of evacuation tasks on the overall set of
      to-be-processed pages (newspace + oldspace compaction pages).
      
      Some low-level details:
       - The hard cap on number of tasks has been lifted
       - We cache store buffer entries locally before merging them back into the global
         StoreBuffer in a finalization phase.
       - We cache AllocationSite operations locally before merging them back into the
         global pretenuring storage in a finalization phase.
       - AllocationSite might be compacted while they would be needed for newspace
         evacuation. To mitigate any problems we defer checking allocation sites for
         newspace till merging locally buffered data.
      
      CQ_EXTRA_TRYBOTS=tryserver.v8:v8_linux_arm64_gc_stress_dbg,v8_linux_gc_stress_dbg,v8_mac_gc_stress_dbg,v8_linux64_asan_rel,v8_linux64_tsan_rel,v8_mac64_asan_rel
      BUG=chromium:524425
      LOG=N
      R=hpayer@chromium.org, ulan@chromium.org
      
      Review URL: https://codereview.chromium.org/1640563004
      
      Cr-Commit-Position: refs/heads/master@{#33552}
      004ce08d
    • machenbach's avatar
      Revert of [heap] Parallel newspace evacuation, semispace copy, and compaction... · 85ba94f2
      machenbach authored
      Revert of [heap] Parallel newspace evacuation, semispace copy, and compaction \o/ (patchset #16 id:620001 of https://codereview.chromium.org/1577853007/ )
      
      Reason for revert:
      [Sheriff] Leads to crashes on all webrtc chromium testers, e.g.:
      https://build.chromium.org/p/chromium.webrtc/builders/Mac%20Tester/builds/49664
      
      Original issue's description:
      > [heap] Parallel newspace evacuation, semispace copy, and compaction \o/
      >
      > All parallelism can be turned off using --predictable, or --noparallel-compaction.
      >
      > This patch completely parallelizes
      >  - semispace copy: from space -> to space (within newspace)
      >  - newspace evacuation: newspace -> oldspace
      >  - oldspace compaction: oldspace -> oldspace
      >
      > Previously newspace has been handled sequentially (semispace copy, newspace
      > evacuation) before compacting oldspace in parallel. However, on a high level
      > there are no dependencies between those two actions, hence we parallelize them
      > altogether. We base the number of evacuation tasks on the overall set of
      > to-be-processed pages (newspace + oldspace compaction pages).
      >
      > Some low-level details:
      >  - The hard cap on number of tasks has been lifted
      >  - We cache store buffer entries locally before merging them back into the global
      >    StoreBuffer in a finalization phase.
      >  - We cache AllocationSite operations locally before merging them back into the
      >    global pretenuring storage in a finalization phase.
      >  - AllocationSite might be compacted while they would be needed for newspace
      >    evacuation. To mitigate any problems we defer checking allocation sites for
      >    newspace till merging locally buffered data.
      >
      > CQ_EXTRA_TRYBOTS=tryserver.v8:v8_linux_arm64_gc_stress_dbg,v8_linux_gc_stress_dbg,v8_mac_gc_stress_dbg,v8_linux64_asan_rel,v8_linux64_tsan_rel,v8_mac64_asan_rel
      > BUG=chromium:524425
      > LOG=N
      > R=hpayer@chromium.org, ulan@chromium.org
      >
      > Committed: https://crrev.com/8f0fd8c0370ae8c5aab56491b879d7e30c329062
      > Cr-Commit-Position: refs/heads/master@{#33523}
      
      TBR=hpayer@chromium.org,ulan@chromium.org,mlippautz@chromium.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=chromium:524425
      
      Review URL: https://codereview.chromium.org/1643473002
      
      Cr-Commit-Position: refs/heads/master@{#33539}
      85ba94f2
  17. 26 Jan, 2016 1 commit
    • mlippautz's avatar
      [heap] Parallel newspace evacuation, semispace copy, and compaction \o/ · 8f0fd8c0
      mlippautz authored
      All parallelism can be turned off using --predictable, or --noparallel-compaction.
      
      This patch completely parallelizes
       - semispace copy: from space -> to space (within newspace)
       - newspace evacuation: newspace -> oldspace
       - oldspace compaction: oldspace -> oldspace
      
      Previously newspace has been handled sequentially (semispace copy, newspace
      evacuation) before compacting oldspace in parallel. However, on a high level
      there are no dependencies between those two actions, hence we parallelize them
      altogether. We base the number of evacuation tasks on the overall set of
      to-be-processed pages (newspace + oldspace compaction pages).
      
      Some low-level details:
       - The hard cap on number of tasks has been lifted
       - We cache store buffer entries locally before merging them back into the global
         StoreBuffer in a finalization phase.
       - We cache AllocationSite operations locally before merging them back into the
         global pretenuring storage in a finalization phase.
       - AllocationSite might be compacted while they would be needed for newspace
         evacuation. To mitigate any problems we defer checking allocation sites for
         newspace till merging locally buffered data.
      
      CQ_EXTRA_TRYBOTS=tryserver.v8:v8_linux_arm64_gc_stress_dbg,v8_linux_gc_stress_dbg,v8_mac_gc_stress_dbg,v8_linux64_asan_rel,v8_linux64_tsan_rel,v8_mac64_asan_rel
      BUG=chromium:524425
      LOG=N
      R=hpayer@chromium.org, ulan@chromium.org
      
      Review URL: https://codereview.chromium.org/1577853007
      
      Cr-Commit-Position: refs/heads/master@{#33523}
      8f0fd8c0
  18. 10 Dec, 2015 1 commit
  19. 13 Nov, 2015 1 commit
    • ishell's avatar
      Avoid manual object's body traversal in GC. · 5ba9ea18
      ishell authored
      This CL introduces the following visitors:
      1) RecordMigratedSlotVisitor which simplifies MarkCompactCollector::MigrateObject().
      2) IteratePointersToFromSpaceVisitor which simplifies Heap::IteratePointersToFromSpace().
      3) FindPointersToNewSpaceVisitor which simplifies StoreBuffer::IteratePointersToNewSpace().
      
      These changes make the object's body descriptors the one and only place that knows how to traverse the object.
      
      Review URL: https://codereview.chromium.org/1441453002
      
      Cr-Commit-Position: refs/heads/master@{#31992}
      5ba9ea18
  20. 30 Sep, 2015 1 commit
  21. 26 Aug, 2015 1 commit
  22. 25 Aug, 2015 1 commit
  23. 21 Aug, 2015 1 commit
  24. 16 Mar, 2015 2 commits
  25. 11 Mar, 2015 1 commit
  26. 10 Mar, 2015 1 commit
  27. 09 Mar, 2015 2 commits
    • hpayer's avatar
      Eliminate invalid pointers in store buffer after marking. · aee169ec
      hpayer authored
      The store buffer can contain stale store buffer entries, i.e., slot in dead objects pointing to new space objects. These slots are treaded as live slots which cause problems with non-pointer fields and makes concurrent sweeping complicated. Removing these pointers from the store buffer before it is used makes life easier.
      
      BUG=
      
      Review URL: https://codereview.chromium.org/985453003
      
      Cr-Commit-Position: refs/heads/master@{#27068}
      aee169ec
    • ishell@chromium.org's avatar
      Revert of Remove slots that point to unboxed doubles from the... · 67a02321
      ishell@chromium.org authored
      Revert of Remove slots that point to unboxed doubles from the StoreBuffer/SlotsBuffer. (patchset #4 id:230001 of https://codereview.chromium.org/957273002/)
      
      Reason for revert:
      It caused a lot of Canary crashes.
      
      Original issue's description:
      > Remove slots that point to unboxed doubles from the StoreBuffer/SlotsBuffer.
      >
      > The problem is that tagged slot could become a double slot after migrating of an object to another map with "shifted" fields (for example as a result of generalizing immutable data property to a data field).
      > This CL also adds useful machinery that helps triggering incremental write barriers.
      >
      > BUG=chromium:454297
      > LOG=Y
      >
      > Committed: https://crrev.com/9633ebabd405c264d33f603f8798c31f59418dcd
      > Cr-Commit-Position: refs/heads/master@{#27054}
      
      TBR=verwaest@chromium.org,hpayer@chromium.org
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=chromium:454297
      
      Review URL: https://codereview.chromium.org/991793002
      
      Cr-Commit-Position: refs/heads/master@{#27063}
      67a02321
  28. 06 Mar, 2015 1 commit
  29. 25 Feb, 2015 1 commit
  30. 11 Aug, 2014 1 commit
  31. 04 Aug, 2014 1 commit
  32. 10 Jul, 2014 1 commit