• Peter Marshall's avatar
    Reland "[cpu-profiler] Fix stack iterability for fast C calls with no exit frame" · 6c8b4102
    Peter Marshall authored
    This is a reland of d5f4a33e
    Landing with test disabled for now.
    
    Original change's description:
    > [cpu-profiler] Fix stack iterability for fast C calls with no exit frame
    >
    > Before fast C calls, store the current FP and PC on the isolate. When
    > iterating frames in SafeStackFrameIterator, check if these fields are
    > set and start iterating at the calling frame's FP instead of the current
    > FP, which will be in C++ code. We need to do this because c_entry_fp is
    > not set on the Isolate for Fast-C-Calls because we don't build an exit
    > frame.
    >
    > This change makes stack samples that occur within 'Fast-C-Calls'
    > iterable, meaning we can properly attribute ticks within the JS caller.
    >
    > Fast-C-Calls can't call back into JS code, so we can only ever have one
    > such call on the stack at a time, allowing us to store the FP on the
    > isolate rather than the stack.
    >
    > TBR=v8-mips-ports@googlegroups.com
    >
    > Bug: v8:8464, v8:7202
    > Change-Id: I7bf39eba779dad34754d5759d741c421b362a406
    > Reviewed-on: https://chromium-review.googlesource.com/c/1340241
    > Commit-Queue: Peter Marshall <petermarshall@chromium.org>
    > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
    > Reviewed-by: Martyn Capewell <martyn.capewell@arm.com>
    > Reviewed-by: Alexei Filippov <alph@chromium.org>
    > Cr-Commit-Position: refs/heads/master@{#57896}
    
    TBR=v8-mips-ports@googlegroups.com
    TBR=jgruber@chromium.org
    
    Bug: v8:8464, v8:7202
    Change-Id: I260d5ab3bc12c9c4529fb52a297a1040dcaa8ebf
    Reviewed-on: https://chromium-review.googlesource.com/c/1354466
    Commit-Queue: Peter Marshall <petermarshall@chromium.org>
    Reviewed-by: 's avatarPeter Marshall <petermarshall@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#57935}
    6c8b4102
Name
Last commit
Last update
benchmarks Loading commit data...
build_overrides Loading commit data...
custom_deps Loading commit data...
docs Loading commit data...
gni Loading commit data...
include Loading commit data...
infra Loading commit data...
samples Loading commit data...
src Loading commit data...
test Loading commit data...
testing Loading commit data...
third_party Loading commit data...
tools Loading commit data...
.clang-format Loading commit data...
.clang-tidy Loading commit data...
.editorconfig Loading commit data...
.git-blame-ignore-revs Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.gn Loading commit data...
.vpython Loading commit data...
.ycm_extra_conf.py Loading commit data...
AUTHORS Loading commit data...
BUILD.gn Loading commit data...
CODE_OF_CONDUCT.md Loading commit data...
ChangeLog Loading commit data...
DEPS Loading commit data...
LICENSE Loading commit data...
LICENSE.fdlibm Loading commit data...
LICENSE.strongtalk Loading commit data...
LICENSE.v8 Loading commit data...
LICENSE.valgrind Loading commit data...
OWNERS Loading commit data...
PRESUBMIT.py Loading commit data...
README.md Loading commit data...
WATCHLISTS Loading commit data...
codereview.settings Loading commit data...
snapshot_toolchain.gni Loading commit data...