heap: Make sure all concurrently marked bytes are reported
CL [1] was submitted on August 24th as an attempt to address foreground marking time regression caused by migrating to the jobs api. That CL made it such that if there aren't many objects left in the marking worklist, a concurrent marker might die without reporting its marked bytes count. As a result, the marked bytes used to compute object size in the heap statistics would be lower than it should be. If collection backing stores are also promptly freed, the overall alllocated bytes since previous gc statistic could be negative and bigger in absolute value than the marked bytes of the previous GC. Drive-by: check if should yield before popping from the worklist. [1] https://chromium-review.googlesource.com/c/chromium/src/+/2368498 Bug: 1124159 Change-Id: Ifa0c74ffc9f521679a21fc0109f2e2f3796700e3 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2404856 Commit-Queue: Omer Katz <omerkatz@chromium.org> Reviewed-by:Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#806585}
Showing
Please register or sign in to comment