1. 20 Feb, 2018 1 commit
  2. 02 Feb, 2018 1 commit
  3. 24 Jan, 2018 1 commit
    • Michael Starzinger's avatar
      Revert "[platform] Remove {PageAllocator::kReadWriteExecute}." · db7bdf48
      Michael Starzinger authored
      This reverts commit bf19e60c.
      
      Reason for revert: Two issues discovered with W^X in V8's 6.5 branch (see v8:7272 and chromium:793428). Still need a way to disable the feature.
      
      Original change's description:
      > [platform] Remove {PageAllocator::kReadWriteExecute}.
      > 
      > Now that write-protection of code memory is enabled everywhere and V8 is
      > fully W^X compliant, we can remove the permission mode in question.
      > 
      > R=​hpayer@chromium.org
      > BUG=v8:6792
      > 
      > Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      > Change-Id: I80fe95ac6bb0e2d1ad6d993154ce45d492d941be
      > Reviewed-on: https://chromium-review.googlesource.com/866855
      > Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
      > Reviewed-by: Hannes Payer <hpayer@chromium.org>
      > Reviewed-by: Bill Budge <bbudge@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#50770}
      
      TBR=bbudge@chromium.org,mstarzinger@chromium.org,hpayer@chromium.org
      
      # Not skipping CQ checks because original CL landed > 1 day ago.
      
      Bug: v8:6792
      Change-Id: If4a205497ac83084a4092560363affb13b391462
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/883461Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Reviewed-by: 's avatarHannes Payer <hpayer@chromium.org>
      Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#50834}
      db7bdf48
  4. 22 Jan, 2018 1 commit
  5. 19 Jan, 2018 1 commit
  6. 21 Dec, 2017 1 commit
  7. 19 Dec, 2017 1 commit
    • Bill Budge's avatar
      Reland [Memory] Speculative fix for sanitizer flakiness. · 52cc5fe0
      Bill Budge authored
      - Uses a mutex to prevent races on getting random mmap addresses, on
        POSIX and Windows.
      
      Original change's description:
      > [Memory] Speculative fix for sanitizer flakiness.
      >
      > - When allocating virtual memory, make sure addresses don't interfere
      >   with hard-coded sanitizer regions.
      >
      > Bug: v8:7146
      > Change-Id: I5bcb664b32bf53c8581772fe329190da6033701f
      > Reviewed-on: https://chromium-review.googlesource.com/833171
      > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > Reviewed-by: Hannes Payer <hpayer@chromium.org>
      > Commit-Queue: Bill Budge <bbudge@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#50208}
      
      Bug: v8:7146
      Change-Id: I5a82f2a1f6136498fb2aa7a37e0206c506545073
      Reviewed-on: https://chromium-review.googlesource.com/834453Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Commit-Queue: Bill Budge <bbudge@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#50216}
      52cc5fe0
  8. 22 Nov, 2017 2 commits
  9. 21 Nov, 2017 1 commit
  10. 16 Nov, 2017 2 commits
  11. 14 Nov, 2017 1 commit
    • Bill Budge's avatar
      Reland "[Memory] Use OS::Allocate for all OS memory allocations." · adc52af5
      Bill Budge authored
      This is a reland of 4899bcb6
      This is a reland of b73ee334
      
      Original change's description:
      > [Memory] Use OS::Allocate for all OS memory allocations.
      >
      > - Eliminates OS::ReserveRegion and OS::ReserveAlignedRegion.
      > - Changes OS::Allocate to take alignment parameter, reorders parameters
      >   to match page_allocator.
      > - Since the size of memory allocation can be deduced, don't return the
      >   amount of memory allocated.
      > - Changes reservation of aligned address space. Before we would reserve
      >   (size + alignment) rounded up to page size. This is too much, because
      >   maximum misalignment is (alignment - page_size).
      > - On Windows and Cygwin, we release an oversize allocation and
      >   immediately retry at the aligned address in the allocation. If we
      >   lose the address due to a race, we just retry.
      > - Clean up all the calls to OS::Allocate in codegen and tests by adding
      >   helper AllocateSystemPage function (allocation.h) and
      >   AllocateAssemblerBuffer (cctest.h).
      > - Changes 'assm' to 'masm' in some targets for consistency when using
      >   a macro-assembler.
      >
      > - Eliminates OS::ReleaseRegion, replacing with calls to OS::Free.
      > - Adds bool return value to OS::Free.
      > - Cleans up types of flags, protection on Windows and Cygwin.
      
      > Bug: chromium:756050
      > Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      > Change-Id: I306dbe042cc867670fdc935abca29db074b0da71
      
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Change-Id: Iad3c025334e8f8d7d647be99a36a11ee449c9087
      Reviewed-on: https://chromium-review.googlesource.com/767014
      Commit-Queue: Bill Budge <bbudge@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49363}
      adc52af5
  12. 11 Nov, 2017 1 commit
  13. 10 Nov, 2017 1 commit
  14. 09 Nov, 2017 1 commit
    • Bill Budge's avatar
      Reland "[Memory] Use OS::Allocate for all OS memory allocations." · 4899bcb6
      Bill Budge authored
      This is a reland of 7e78506f
      Original change's description:
      > [Memory] Use OS::Allocate for all OS memory allocations.
      > 
      > - Eliminates OS::ReserveRegion and OS::ReserveAlignedRegion.
      > - Changes OS::Allocate to take alignment parameter, reorders parameters
      >   to match page_allocator.
      > - Since the size of memory allocation can be deduced, don't return the
      >   amount of memory allocated.
      > - Changes reservation of aligned address space. Before we would reserve
      >   (size + alignment) rounded up to page size. This is too much, because
      >   maximum misalignment is (alignment - page_size).
      > - On Windows and Cygwin, we release an oversize allocation and
      >   immediately retry at the aligned address in the allocation. If we
      >   lose the address due to a race, we just retry.
      > - Clean up all the calls to OS::Allocate in codegen and tests by adding
      >   helper AllocateSystemPage function (allocation.h) and
      >   AllocateAssemblerBuffer (cctest.h).
      > - Changes 'assm' to 'masm' in some targets for consistency when using
      >   a macro-assembler.
      > 
      > Bug: chromium:756050
      > Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      > Change-Id: I306dbe042cc867670fdc935abca29db074b0da71
      > Reviewed-on: https://chromium-review.googlesource.com/749848
      > Commit-Queue: Bill Budge <bbudge@chromium.org>
      > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > Reviewed-by: Hannes Payer <hpayer@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#49235}
      
      Bug: chromium:756050
      Change-Id: I333f7a6aea0bcb608d01cafb43e94893a4625b15
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/758509Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Commit-Queue: Bill Budge <bbudge@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49273}
      4899bcb6
  15. 08 Nov, 2017 2 commits
    • Bill Budge's avatar
      Revert "[Memory] Use OS::Allocate for all OS memory allocations." · 1ea3fd2e
      Bill Budge authored
      This reverts commit 7e78506f.
      
      Reason for revert: Broke Android build on Arm64.
      
      Original change's description:
      > [Memory] Use OS::Allocate for all OS memory allocations.
      > 
      > - Eliminates OS::ReserveRegion and OS::ReserveAlignedRegion.
      > - Changes OS::Allocate to take alignment parameter, reorders parameters
      >   to match page_allocator.
      > - Since the size of memory allocation can be deduced, don't return the
      >   amount of memory allocated.
      > - Changes reservation of aligned address space. Before we would reserve
      >   (size + alignment) rounded up to page size. This is too much, because
      >   maximum misalignment is (alignment - page_size).
      > - On Windows and Cygwin, we release an oversize allocation and
      >   immediately retry at the aligned address in the allocation. If we
      >   lose the address due to a race, we just retry.
      > - Clean up all the calls to OS::Allocate in codegen and tests by adding
      >   helper AllocateSystemPage function (allocation.h) and
      >   AllocateAssemblerBuffer (cctest.h).
      > - Changes 'assm' to 'masm' in some targets for consistency when using
      >   a macro-assembler.
      > 
      > Bug: chromium:756050
      > Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      > Change-Id: I306dbe042cc867670fdc935abca29db074b0da71
      > Reviewed-on: https://chromium-review.googlesource.com/749848
      > Commit-Queue: Bill Budge <bbudge@chromium.org>
      > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > Reviewed-by: Hannes Payer <hpayer@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#49235}
      
      TBR=bbudge@chromium.org,hpayer@chromium.org,mlippautz@chromium.org
      
      Change-Id: Ic09de4d63c19746a62e804b1f889817ffaebc330
      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/758625Reviewed-by: 's avatarBill Budge <bbudge@chromium.org>
      Commit-Queue: Bill Budge <bbudge@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49242}
      1ea3fd2e
    • Bill Budge's avatar
      [Memory] Use OS::Allocate for all OS memory allocations. · 7e78506f
      Bill Budge authored
      - Eliminates OS::ReserveRegion and OS::ReserveAlignedRegion.
      - Changes OS::Allocate to take alignment parameter, reorders parameters
        to match page_allocator.
      - Since the size of memory allocation can be deduced, don't return the
        amount of memory allocated.
      - Changes reservation of aligned address space. Before we would reserve
        (size + alignment) rounded up to page size. This is too much, because
        maximum misalignment is (alignment - page_size).
      - On Windows and Cygwin, we release an oversize allocation and
        immediately retry at the aligned address in the allocation. If we
        lose the address due to a race, we just retry.
      - Clean up all the calls to OS::Allocate in codegen and tests by adding
        helper AllocateSystemPage function (allocation.h) and
        AllocateAssemblerBuffer (cctest.h).
      - Changes 'assm' to 'masm' in some targets for consistency when using
        a macro-assembler.
      
      Bug: chromium:756050
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Change-Id: I306dbe042cc867670fdc935abca29db074b0da71
      Reviewed-on: https://chromium-review.googlesource.com/749848
      Commit-Queue: Bill Budge <bbudge@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarHannes Payer <hpayer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49235}
      7e78506f
  16. 07 Nov, 2017 2 commits
  17. 06 Nov, 2017 1 commit
  18. 03 Nov, 2017 1 commit
  19. 20 Oct, 2017 1 commit
    • Hannes Payer's avatar
      [heap] Implemented write protected code pages. · 14917b65
      Hannes Payer authored
      This CL provides the basic infrastructure on the GC side for write protected code pages.
      
      The only thing missing on the GC side is the out-of-line free list implementation. In this
      CL sweeper threads and the mutator need to synchronize when page protection mode changes.
      This would not be necessary if the sweepr use and out-of-line free list.
      
      Code allocation is currently protected by a CodeSpaceMemoryModificationScope. This may
      go away with a unification of code space allocation and initialization that will happen
      later.
      
      One thing missing in this CL: freshly added pages are still read+write+executable. This
      also needs to change: WIP
      
      Bug: chromium:774108,v8:6792
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Change-Id: Ib8d1ed1c09cc144791e462277bf43a4641e1490d
      Reviewed-on: https://chromium-review.googlesource.com/716379
      Commit-Queue: Hannes Payer <hpayer@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48774}
      14917b65
  20. 18 Oct, 2017 2 commits
  21. 01 Oct, 2017 1 commit
  22. 22 Sep, 2017 1 commit
  23. 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
  24. 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
  25. 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
  26. 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
  27. 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
  28. 11 Sep, 2017 1 commit
    • Deepti Gandluri's avatar
      [wasm] Memory.Grow with guard pages enabled should adjust memory allocated · 2aecded2
      Deepti Gandluri authored
       - Memory.Grow with guard pages enabled should adjust amount of allocated
         memory, and not allocate a new buffer. This was disabled because previously
         the backing store was freed in the MemoryFinalizer, and we needed to be sure
         that the backing store is not released till the last buffer using it is
         released. This is now safe as we no longer use the MemoryFinalizer
       - SetProtection should use Guard/Unprotect that use mprotect underneath,
         instead of CommitRegion/UncommitRegion that use mmap
       - Move buffer allocation to the end to avoid inconsistent memory due to GC
      
      BUG=v8:5886
      
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Change-Id: I0d7edb884bd1e3167eb5fbced6953c6401688d40
      Reviewed-on: https://chromium-review.googlesource.com/629517Reviewed-by: 's avatarBrad Nelson <bradnelson@chromium.org>
      Reviewed-by: 's avatarEric Holk <eholk@chromium.org>
      Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47960}
      2aecded2
  29. 27 Jul, 2017 1 commit
  30. 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
  31. 03 Jul, 2017 1 commit
  32. 16 Jun, 2017 1 commit
  33. 09 Jun, 2017 1 commit
  34. 04 May, 2017 1 commit
  35. 17 Mar, 2017 1 commit