668aafb56c
On Linux, Perfetto translates the builtin "ts" timestamp in trace event from CLOCK_MONOTONIC to CLOCK_BOOTTIME, before passing them to devtools. Devtools therefore implicitly operates on timestamps that are in CLOCK_BOOTTIME. However, additional timestamps sent in trace event payload arguments will not be converted to CLOCK_BOOTTIME by Perfetto, raising the possibility of devtools using timestamps from multiple clock domains incorrectly. Since trace events sent by CpuProfile also include the builtin "ts" trace timestamp (sampled from CLOCK_MONOTONIC nearly at the same time by the tracing framework), sending "data.startTime" and "data.endTime" is essentially redundant. devtools-frontend:2113957 stops the use of the value of these timestamps in the payload of Profile and ProfileChunk events. Devtools continue to use the presence of these arguments to indentify start and end profile events. ProfileChunk events also include "timeDeltas" which are relative timestamps. They are also in CLOCK_MONOTONIC and are not translated by Perfetto. devtools-frontend:2113957 computes absolute CLOCK_BOOTTIME timestamps from timeDeltas by adding them to "ts" in the "Profile" event (previously, "data.startTime" was used). This is only valid if the system is not suspended/resumed during profiling. Providing support for suspend/resume in the middle of profiling will likely involve having Perfetto convert "timeDeltas" directly to CLOCK_BOOTTIME. This CL introduces no code changes and only adds comments to explain the above. BUG=chromium:1055871 Change-Id: I649dfcce8ea1a100c0ecfe03f843c7cb1fdd6f33 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2114001 Commit-Queue: Peter Marshall <petermarshall@chromium.org> Reviewed-by: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#66820} |
||
---|---|---|
build_overrides | ||
custom_deps | ||
docs | ||
gni | ||
include | ||
infra | ||
samples | ||
src | ||
test | ||
testing | ||
third_party | ||
tools | ||
.clang-format | ||
.clang-tidy | ||
.editorconfig | ||
.flake8 | ||
.git-blame-ignore-revs | ||
.gitattributes | ||
.gitignore | ||
.gn | ||
.vpython | ||
.ycm_extra_conf.py | ||
AUTHORS | ||
BUILD.gn | ||
CODE_OF_CONDUCT.md | ||
codereview.settings | ||
COMMON_OWNERS | ||
DEPS | ||
ENG_REVIEW_OWNERS | ||
INFRA_OWNERS | ||
INTL_OWNERS | ||
LICENSE | ||
LICENSE.fdlibm | ||
LICENSE.strongtalk | ||
LICENSE.v8 | ||
LICENSE.valgrind | ||
MIPS_OWNERS | ||
OWNERS | ||
PPC_OWNERS | ||
PRESUBMIT.py | ||
README.md | ||
S390_OWNERS | ||
WATCHLISTS |
V8 JavaScript Engine
V8 is Google's open source JavaScript engine.
V8 implements ECMAScript as specified in ECMA-262.
V8 is written in C++ and is used in Google Chrome, the open source browser from Google.
V8 can run standalone, or can be embedded into any C++ application.
V8 Project page: https://v8.dev/docs
Getting the Code
Checkout depot tools, and run
fetch v8
This will checkout V8 into the directory v8
and fetch all of its dependencies.
To stay up to date, run
git pull origin
gclient sync
For fetching all branches, add the following into your remote
configuration in .git/config
:
fetch = +refs/branch-heads/*:refs/remotes/branch-heads/*
fetch = +refs/tags/*:refs/tags/*
Contributing
Please follow the instructions mentioned at v8.dev/docs/contribute.