• Samuel Groß's avatar
    [base] Add VirtualAddressSpace::AllocateGuardRegion · 406d65d3
    Samuel Groß authored
    Previously, guard regions were created by allocating pages with
    PROT_NONE and relying on an allocation hint. This could fail however,
    for example on Fuchsia (where it would allocate a VMO to back the guard
    region) and possibly on Windows (where a placeholder mapping was
    replaced by a "real" mapping).
    
    Introducing an explicit VirtualAddressSpace::AllocateGuardRegion routine
    now makes this operation more efficient and effectively guarantees that
    it cannot fail if used correctly: in a regular subspace, there is no
    need to allocate anything when creating guard regions since the address
    space reservation backing the subspace is guaranteed to be inaccessible
    when no pages are allocated in it.
    
    Bug: chromium:1218005
    Change-Id: I6945f17616b6b8dad47241af96d4cb1f660e8858
    Cq-Include-Trybots: luci.v8.try:v8_linux64_heap_sandbox_dbg_ng,v8_linux_arm64_sim_heap_sandbox_dbg_ng
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3366237Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
    Commit-Queue: Samuel Groß <saelo@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#78480}
    406d65d3
virtual-address-space.cc 11.1 KB