Partial releasing of pages results in address space leak and inconsistent counters |
||
Issue descriptionWhen partially releasing memory on large pages we (1) perform PartialRelease on the region at the end of the page (2) decrease the page size On Windows this is problematic because we cannot actually release the region but merely uncommit it due to Windows API constraints. Furthermore, we should update the committed counter on LargeObjectSpace to reflect that memory was uncommitted, as this counter is reported. The address space leak happens when we then finally release the large page as we only release and update the counters corresponding to the page size. To address this issue we need to (a) report the uncommitted area right away, and (b) release the right region of memory when fully returning the page
,
May 31 2017
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/73cf88d6a0bb0f32d048f37bfe33077a2c83c672 commit 73cf88d6a0bb0f32d048f37bfe33077a2c83c672 Author: Michael Lippautz <mlippautz@chromium.org> Date: Wed May 31 12:09:51 2017 [heap] Fix accounting for partially freed pages in LO space Bug: chromium:728096 Change-Id: I8f95f15b56cd49f3e199b74b119abb49eadfe2e1 Reviewed-on: https://chromium-review.googlesource.com/519163 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#45624} [modify] https://crrev.com/73cf88d6a0bb0f32d048f37bfe33077a2c83c672/src/heap/spaces.cc [modify] https://crrev.com/73cf88d6a0bb0f32d048f37bfe33077a2c83c672/src/heap/spaces.h
,
May 31 2017
|
||
►
Sign in to add a comment |
||
Comment 1 by mlippautz@chromium.org
, May 31 2017