-
Omer Katz authored
This reverts commit 580917d2. Reason for revert: fix in patchset 2 Original change's description: > Revert "cppgc: Stack scanning using ObjectStartBitmap" > > This reverts commit d3a72e3c. > > Reason for revert: MSAN failures (https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/32360) > > Original change's description: > > cppgc: Stack scanning using ObjectStartBitmap > > > > This CL implements stack scanning for cppgc. > > Given a value on the stack, the MarkingVisitor uses > > PageBackend::Lookup to checks whether that address is on > > the heap. If it is, BasePage::TryObjectHeaderFromInnerAddress > > (introduced in this CL) is used to get the relevant object > > header. Note that random addresses on the heap might point to > > free memory, object-start-bitmap, etc. > > > > If a valid object header is found: > > * If the object is not in construction, the GCInfoIndex is used > > the get the relevant Trace method and the object is traced. > > * Otherwise, the object is conservatively scanned - i.e. the > > payload of the object is iterated word by word and each word is > > treated as a possible pointer. > > > > Only addresses pointing to the payload on non-free objects are > > traced. > > > > BasePage::TryObjectHeaderFromInnerAddress assumes on LAB on the > > relevant space, thus all LABs are reset before scanning the stack. > > > > Bug: chromium:1056170 > > Change-Id: I172850f6f1bbb6f0efca8e44ad8fdfe222977b9f > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2190426 > > Commit-Queue: Omer Katz <omerkatz@chromium.org> > > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > > Reviewed-by: Anton Bikineev <bikineev@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#67795} > > TBR=ulan@chromium.org,mlippautz@chromium.org,bikineev@chromium.org,omerkatz@chromium.org > > Change-Id: I3caef6f9f55911fd1a86e895c3495d1b98b1eac2 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: chromium:1056170 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2201136 > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Commit-Queue: Leszek Swirski <leszeks@chromium.org> > Cr-Commit-Position: refs/heads/master@{#67796} TBR=ulan@chromium.org,mlippautz@chromium.org,leszeks@chromium.org,bikineev@chromium.org,omerkatz@chromium.org # Not skipping CQ checks because this is a reland. Bug: chromium:1056170 Change-Id: If7ea4fe5cb794c07544d5545f5d6548e3375d3ae Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2201137Reviewed-by: Omer Katz <omerkatz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Anton Bikineev <bikineev@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/master@{#67803}
93059842