1. 22 Nov, 2017 1 commit
  2. 21 Nov, 2017 1 commit
  3. 16 Nov, 2017 1 commit
  4. 25 Sep, 2017 1 commit
  5. 21 Sep, 2017 1 commit
    • Bill Budge's avatar
      Reland "Reland "[Memory] Move VirtualMemory out of base:: platform."" · 645cda07
      Bill Budge authored
      This is a reland of f2cd10db
      Original change's description:
      > Reland "[Memory] Move VirtualMemory out of base:: platform."
      > 
      > This is a reland of 4dd293d9
      > Original change's description:
      > > [Memory] Move VirtualMemory out of base:: platform.
      > > 
      > > - Moves base::VirtualMemory to v8::internal::VirtualMemory.
      > > - Makes VirtualMemory platform-independent by moving internals to new
      > >   OS:: static methods, for each platform.
      > > 
      > > This will make it easier to delegate memory management in VirtualMemory
      > > to V8::Platform, so that embedders like Blink can override it. We can't
      > > depend on V8::Platform in base/platform.
      > > 
      > > Bug: chromium:756050
      > > Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      > > Change-Id: Iadfe230b6850bd917727a373f277afded9883adf
      > > Reviewed-on: https://chromium-review.googlesource.com/653214
      > > Commit-Queue: Bill Budge <bbudge@chromium.org>
      > > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#48048}
      > 
      > Bug: chromium:756050
      > Change-Id: Ib492c7c69f1833be127a571808301e96b84b8aa2
      > Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      > Reviewed-on: https://chromium-review.googlesource.com/671125
      > Commit-Queue: Bill Budge <bbudge@chromium.org>
      > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#48084}
      
      Bug: chromium:756050
      Change-Id: Ie596730b5cefc38137cab7fc1f76613f5af7b825
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/675283Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Commit-Queue: Bill Budge <bbudge@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48113}
      645cda07
  6. 20 Sep, 2017 1 commit
    • Michael Hablich's avatar
      Revert "Reland "[Memory] Move VirtualMemory out of base:: platform."" · 7447fd53
      Michael Hablich authored
      This reverts commit f2cd10db.
      
      Reason for revert: Blocks the roll https://chromium-review.googlesource.com/c/chromium/src/+/674623
      
      Original change's description:
      > Reland "[Memory] Move VirtualMemory out of base:: platform."
      > 
      > This is a reland of 4dd293d9
      > Original change's description:
      > > [Memory] Move VirtualMemory out of base:: platform.
      > > 
      > > - Moves base::VirtualMemory to v8::internal::VirtualMemory.
      > > - Makes VirtualMemory platform-independent by moving internals to new
      > >   OS:: static methods, for each platform.
      > > 
      > > This will make it easier to delegate memory management in VirtualMemory
      > > to V8::Platform, so that embedders like Blink can override it. We can't
      > > depend on V8::Platform in base/platform.
      > > 
      > > Bug: chromium:756050
      > > Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      > > Change-Id: Iadfe230b6850bd917727a373f277afded9883adf
      > > Reviewed-on: https://chromium-review.googlesource.com/653214
      > > Commit-Queue: Bill Budge <bbudge@chromium.org>
      > > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#48048}
      > 
      > Bug: chromium:756050
      > Change-Id: Ib492c7c69f1833be127a571808301e96b84b8aa2
      > Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      > Reviewed-on: https://chromium-review.googlesource.com/671125
      > Commit-Queue: Bill Budge <bbudge@chromium.org>
      > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#48084}
      
      TBR=bbudge@chromium.org,ulan@chromium.org,hpayer@chromium.org,mlippautz@chromium.org,scottmg@chromium.org
      
      Change-Id: I04176d77ca9ad8315b0e1bb2b21f40f2c8ab9536
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: chromium:756050
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/674843Reviewed-by: 's avatarMichael Hablich <hablich@chromium.org>
      Commit-Queue: Michael Hablich <hablich@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48088}
      7447fd53
  7. 19 Sep, 2017 1 commit
    • Bill Budge's avatar
      Reland "[Memory] Move VirtualMemory out of base:: platform." · f2cd10db
      Bill Budge authored
      This is a reland of 4dd293d9
      Original change's description:
      > [Memory] Move VirtualMemory out of base:: platform.
      > 
      > - Moves base::VirtualMemory to v8::internal::VirtualMemory.
      > - Makes VirtualMemory platform-independent by moving internals to new
      >   OS:: static methods, for each platform.
      > 
      > This will make it easier to delegate memory management in VirtualMemory
      > to V8::Platform, so that embedders like Blink can override it. We can't
      > depend on V8::Platform in base/platform.
      > 
      > Bug: chromium:756050
      > Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      > Change-Id: Iadfe230b6850bd917727a373f277afded9883adf
      > Reviewed-on: https://chromium-review.googlesource.com/653214
      > Commit-Queue: Bill Budge <bbudge@chromium.org>
      > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#48048}
      
      Bug: chromium:756050
      Change-Id: Ib492c7c69f1833be127a571808301e96b84b8aa2
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/671125
      Commit-Queue: Bill Budge <bbudge@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48084}
      f2cd10db
  8. 18 Sep, 2017 1 commit
    • Michael Hablich's avatar
      Revert "[Memory] Move VirtualMemory out of base:: platform." · 4fc43530
      Michael Hablich authored
      This reverts commit 4dd293d9.
      
      Reason for revert: Blocks roll: https://chromium-review.googlesource.com/c/chromium/src/+/669785
      
      Original change's description:
      > [Memory] Move VirtualMemory out of base:: platform.
      > 
      > - Moves base::VirtualMemory to v8::internal::VirtualMemory.
      > - Makes VirtualMemory platform-independent by moving internals to new
      >   OS:: static methods, for each platform.
      > 
      > This will make it easier to delegate memory management in VirtualMemory
      > to V8::Platform, so that embedders like Blink can override it. We can't
      > depend on V8::Platform in base/platform.
      > 
      > Bug: chromium:756050
      > Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      > Change-Id: Iadfe230b6850bd917727a373f277afded9883adf
      > Reviewed-on: https://chromium-review.googlesource.com/653214
      > Commit-Queue: Bill Budge <bbudge@chromium.org>
      > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#48048}
      
      TBR=bbudge@chromium.org,ulan@chromium.org,hpayer@chromium.org,mlippautz@chromium.org,scottmg@chromium.org
      
      # Not skipping CQ checks because original CL landed > 1 day ago.
      
      Bug: chromium:756050
      Change-Id: Ice2618ef72950e1b64c31434a239c626aa5e5970
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/670843Reviewed-by: 's avatarMichael Hablich <hablich@chromium.org>
      Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Commit-Queue: Michael Hablich <hablich@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48062}
      4fc43530
  9. 15 Sep, 2017 1 commit
    • Bill Budge's avatar
      [Memory] Move VirtualMemory out of base:: platform. · 4dd293d9
      Bill Budge authored
      - Moves base::VirtualMemory to v8::internal::VirtualMemory.
      - Makes VirtualMemory platform-independent by moving internals to new
        OS:: static methods, for each platform.
      
      This will make it easier to delegate memory management in VirtualMemory
      to V8::Platform, so that embedders like Blink can override it. We can't
      depend on V8::Platform in base/platform.
      
      Bug: chromium:756050
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Change-Id: Iadfe230b6850bd917727a373f277afded9883adf
      Reviewed-on: https://chromium-review.googlesource.com/653214
      Commit-Queue: Bill Budge <bbudge@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48048}
      4dd293d9
  10. 09 Aug, 2017 1 commit
  11. 07 Aug, 2017 1 commit
  12. 03 Aug, 2017 1 commit
  13. 01 Aug, 2017 1 commit
    • Bill Budge's avatar
      Reland "[Memory] Add an OnCriticalMemoryPressure method to V8::Platform." · f8db3e8f
      Bill Budge authored
      This is a reland of 3f90d9f9
      Original change's description:
      > [Memory] Add an OnCriticalMemoryPressure method to V8::Platform.
      > 
      > Adds virtual V8::Platform::OnCriticalMemoryPressure method, default
      > implementation does nothing.
      > 
      > Calls this method on first allocation failures in NewArray, Malloced,
      > and zone AccountingAllocator and adds retry logic.
      > 
      > Adds utility functions for allocating base::VirtualMemory to functions
      > in allocation.h, which call this method and add retry logic.
      > 
      > Calls these utility functions in heap CodeRange, Spaces, StoreBuffer
      > and SequentialMarkingDeque.
      > 
      > Bug: v8:6635
      > Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      > Change-Id: I38afd394f3be556aca037d16675e9884658158cb
      > Reviewed-on: https://chromium-review.googlesource.com/583543
      > Commit-Queue: Bill Budge <bbudge@chromium.org>
      > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#46988}
      
      Bug: v8:6635
      Change-Id: I0d70c5796f407f0ed42cfddf581d26f533f9bea8
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/593090Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47027}
      f8db3e8f
  14. 29 Jul, 2017 2 commits
    • Georg Neis's avatar
      Revert "[Memory] Add an OnCriticalMemoryPressure method to V8::Platform." · 53db0584
      Georg Neis authored
      This reverts commit 3f90d9f9.
      
      Reason for revert: https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20TSAN/builds/16510
      
      Original change's description:
      > [Memory] Add an OnCriticalMemoryPressure method to V8::Platform.
      > 
      > Adds virtual V8::Platform::OnCriticalMemoryPressure method, default
      > implementation does nothing.
      > 
      > Calls this method on first allocation failures in NewArray, Malloced,
      > and zone AccountingAllocator and adds retry logic.
      > 
      > Adds utility functions for allocating base::VirtualMemory to functions
      > in allocation.h, which call this method and add retry logic.
      > 
      > Calls these utility functions in heap CodeRange, Spaces, StoreBuffer
      > and SequentialMarkingDeque.
      > 
      > Bug: v8:6635
      > Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      > Change-Id: I38afd394f3be556aca037d16675e9884658158cb
      > Reviewed-on: https://chromium-review.googlesource.com/583543
      > Commit-Queue: Bill Budge <bbudge@chromium.org>
      > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#46988}
      
      TBR=bbudge@chromium.org,ulan@chromium.org,mlippautz@chromium.org
      
      Change-Id: I79afea5982e62db1462cc5a5585a226f0ddbe752
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:6635
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/592887Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Commit-Queue: Georg Neis <neis@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46989}
      53db0584
    • Bill Budge's avatar
      [Memory] Add an OnCriticalMemoryPressure method to V8::Platform. · 3f90d9f9
      Bill Budge authored
      Adds virtual V8::Platform::OnCriticalMemoryPressure method, default
      implementation does nothing.
      
      Calls this method on first allocation failures in NewArray, Malloced,
      and zone AccountingAllocator and adds retry logic.
      
      Adds utility functions for allocating base::VirtualMemory to functions
      in allocation.h, which call this method and add retry logic.
      
      Calls these utility functions in heap CodeRange, Spaces, StoreBuffer
      and SequentialMarkingDeque.
      
      Bug: v8:6635
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Change-Id: I38afd394f3be556aca037d16675e9884658158cb
      Reviewed-on: https://chromium-review.googlesource.com/583543
      Commit-Queue: Bill Budge <bbudge@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46988}
      3f90d9f9
  15. 25 Jul, 2017 1 commit
  16. 14 Jul, 2017 1 commit
    • Ulan Degenbaev's avatar
      [heap] Rework ASLR for base::Platform::VirtualMemory · 0640cbf3
      Ulan Degenbaev authored
      Currently every VirtualMemory allocation on 64-bit systems
      uses a random 46-bit address hint for ASLR.
      
      This leads to wired page leak on MacOS discovered by Erik Chen (see
      crbug.com/700928 and https://chromium-review.googlesource.com/c/557958/):
      "The Darwin kernel [as of macOS 10.12.5] does not clean up page directory
      entries [PDE] created from mmap or mach_vm_allocate, even after
      the region is destroyed. Using a virtual address space that is too large
      causes a leak of about 1 wired [can never be paged out] page per call to
      mmap(). The page is only reclaimed when the process is killed."
      
      This patch changes VirtualMemory to accept the hint parameter explicitly.
      
      On MacOS the hints are confined to 4GB contiguous region. Algorithm:
      - On startup, set heap.mmap_region_base_ to a random address.
      - For each mmap use heap.mmap_region_base_ + (random_offset % (4*GB)).
      
      BUG=chromium:700928
      
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Change-Id: I2ae6a024e02fbe63f940105d7920b57c19abacc6
      Reviewed-on: https://chromium-review.googlesource.com/558876
      Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46656}
      0640cbf3
  17. 28 Feb, 2017 1 commit
  18. 13 Feb, 2017 2 commits
  19. 06 Feb, 2017 1 commit
  20. 08 Dec, 2016 1 commit
  21. 29 Nov, 2016 3 commits
  22. 24 Nov, 2016 2 commits
  23. 18 Nov, 2016 1 commit
  24. 11 Nov, 2016 1 commit
  25. 28 Oct, 2016 2 commits
  26. 31 Mar, 2016 2 commits
  27. 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
  28. 09 Feb, 2016 1 commit
  29. 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
  30. 25 Jan, 2016 1 commit
    • mlippautz's avatar
      [heap] Cleanup: Remove WAS_SWEPT flag. · 5eff5420
      mlippautz authored
      - Completely rely on the concurrent sweeping state for SweepingCompleted()
      - Rename the state accordingly.
      
      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
      R=hpayer@chromium.org
      
      Review URL: https://codereview.chromium.org/1614953002
      
      Cr-Commit-Position: refs/heads/master@{#33490}
      5eff5420
  31. 15 Jan, 2016 1 commit
  32. 09 Dec, 2015 1 commit
  33. 04 Dec, 2015 1 commit
    • mlippautz's avatar
      [heap] Clean up stale store buffer entries for aborted pages. · 26fcd830
      mlippautz authored
      Fix the missed store buffer entries for live objects on aborted pages. Marking
      the page as scan_on_scavenge takes care of rebuilding the entries. Note that
      this requires an additional case in the rebuilding logic as we cannot iterate an
      aborted pages using the object layout, but rather have to use mark bits for
      this.
      
      BUG=chromium:524425, chromium:564498
      LOG=N
      
      Review URL: https://codereview.chromium.org/1497883003
      
      Cr-Commit-Position: refs/heads/master@{#32610}
      26fcd830