• Bartek Nowierski's avatar
    [PartitionAlloc] Don't call SetSystemPageAccess twice · 2c0a6287
    Bartek Nowierski authored
    Call to De/RecommitSystemPages is almost always accompanied by
    SetSystemPageAccess. On Windows and Fuchsia, literally all
    De/RecommitSystemPages do is call SetSystemPageAccess, leading to
    a redundant double call. This CLs unifies this behavior, so that only
    one function has to be called.
    
    Apart from the double call evasion, there are other behavior changes:
    - gin::PageAllocator::SetPermissions, on Posix, will now make pages
      inaccessible when kNoAccess requested
    - AddressPoolManager::Alloc, on Windows, will now CHECK instead
      returning false
    - PagePool::Take, on Posix, will now CHECK (instead of returning
      nullptr) if failed to set permissions, and on Windows, CHECK is moved
      down the stack
    - PartitionBucket::SlowPathAlloc -> PartitionRoot::RecommitSystemPages,
      on Windows, CHECK is moved down the stack
    - NormalPageArena::AllocatePage & PageMemory::Allocate, on Windows
      & Posix, CHECK is moved down the stack
    
    Bug: 766882
    Change-Id: I961200449abc5271c9e0bed5ad6c4544468169b8
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2550119Reviewed-by: default avatarAlbert J. Wong <ajwong@chromium.org>
    Reviewed-by: default avatarMichael Lippautz <mlippautz@chromium.org>
    Reviewed-by: default avatarRoss McIlroy <rmcilroy@chromium.org>
    Commit-Queue: Bartek Nowierski <bartekn@chromium.org>
    Auto-Submit: Bartek Nowierski <bartekn@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#831192}
    2c0a6287
partition_root.cc 29.2 KB