Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(148)

Issue 1783503002: [Interpreter] Add Ignition profile visualization tool. (Closed)

Created:
4 years, 9 months ago by Stefano Sanfilippo
Modified:
4 years, 8 months ago
CC:
v8-reviews_googlegroups.com, rmcilroy
Base URL:
https://chromium.googlesource.com/v8/v8.git@run-perf
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

[Interpreter] Add Ignition profile visualization tool. A new script is introduced, linux_perf_report.py, which reads Linux perf data collected when running with FLAG_perf_basic_prof enabled and produces an input file for flamegraph.pl, or a report of the hottest bytecode handlers. The bottom blocks of the produced flamegraph are bytecode handlers. Special bottom blocks exist as well for compile routines, time spent outside the interpreter and interpreter entry trampolines. Because various Stubs and other pieces of JITted code do not maintain the frame pointer, some sampled callchains might be incomplete even if V8 is compiled with no_omit_framepointer=on. The script is able to detect the most common anomaly where an entry trampoline appears in a chain, but not on top, meaning that the frame of another bytecode handler is hidden. In this case, the sample will be moved to a [misattributed] group to avoid skewing the profile of unrelated handlers. Misattributed samples and compilation routines are hidden by default. BUG=v8:4899 LOG=N Committed: https://crrev.com/8b5d4c74ec39dd773aa057ba12ed68fd2292eeb0 Cr-Commit-Position: refs/heads/master@{#35574}

Patch Set 1 #

Patch Set 2 : Avoid uneeded unpacking. #

Total comments: 3

Patch Set 3 : Imports in alpha order. #

Patch Set 4 : Fix pylint warnings. #

Patch Set 5 : Handle anonymous namespaces. #

Patch Set 6 : Pass callchains to counter routines. #

Patch Set 7 : Test cases. #

Patch Set 8 : Test that indentation is not relevant. #

Patch Set 9 : Test symbol name regex w/ template instantiations. #

Total comments: 24

Patch Set 10 : Camel case to snake. #

Patch Set 11 : Test multiple handlers in callchain. #

Patch Set 12 : First review. #

Patch Set 13 : Executable bit for ignition_perf_report.py #

Patch Set 14 : Fix command line in examples, move strings inside tests, private strings. #

Patch Set 15 : Rename viz script and move to ignition/ subdir. #

Patch Set 16 : Move unit tests file. #

Patch Set 17 : Fix all references to old script name and location. #

Patch Set 18 : Better error message, do not strip symbols, add [unattributed] group. #

Patch Set 19 : Group other, misattributed and compiler samples, fix split blocks issue w/ workaround, flatten tram… #

Total comments: 18

Patch Set 20 #

Patch Set 21 : Review. #

Patch Set 22 : Always emit a trailing semicolon, no wait() #

Unified diffs Side-by-side diffs Delta from patch set Stats (+369 lines, -0 lines) Patch
A tools/ignition/linux_perf_report.py View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 chunk +222 lines, -0 lines 0 comments Download
A tools/ignition/linux_perf_report_test.py View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +147 lines, -0 lines 0 comments Download

Messages

Total messages: 52 (22 generated)
Stefano Sanfilippo
Here's a tool for processing perf sampled data and yield either a heatmap of Ignition ...
4 years, 9 months ago (2016-03-09 18:16:55 UTC) #2
Michael Achenbach
Python lg. I'm not familiar with the perf format, please find another reviewer who is, ...
4 years, 9 months ago (2016-03-10 11:50:36 UTC) #3
Stefano Sanfilippo
On 2016/03/10 11:50:36, Michael Achenbach wrote: > Python lg. I'm not familiar with the perf ...
4 years, 9 months ago (2016-03-10 12:33:00 UTC) #4
Michael Achenbach
> https://codereview.chromium.org/1783503002/diff/20001/tools/ignition_perf_report.py#newcode75 > > tools/ignition_perf_report.py:75: handler = callchain[-1].split(":", 1)[1] > > Assuming that there is ...
4 years, 9 months ago (2016-03-10 12:38:25 UTC) #7
Stefano Sanfilippo
On 2016/03/10 12:33:00, Stefano Sanfilippo wrote: > On 2016/03/10 11:50:36, Michael Achenbach wrote: > > ...
4 years, 9 months ago (2016-03-10 12:45:38 UTC) #8
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1783503002/160001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1783503002/160001
4 years, 9 months ago (2016-03-10 17:53:32 UTC) #10
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 9 months ago (2016-03-10 18:09:46 UTC) #12
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1783503002/180001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1783503002/180001
4 years, 9 months ago (2016-03-10 20:39:52 UTC) #14
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 9 months ago (2016-03-10 23:19:31 UTC) #16
rmcilroy
Looks really good, thanks! https://codereview.chromium.org/1783503002/diff/160001/tools/ignition_perf_report.py File tools/ignition_perf_report.py (right): https://codereview.chromium.org/1783503002/diff/160001/tools/ignition_perf_report.py#newcode21 tools/ignition_perf_report.py:21: EPILOGUE = """ HELP_EPILOGUE. Also ...
4 years, 9 months ago (2016-03-11 11:26:49 UTC) #17
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1783503002/200001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1783503002/200001
4 years, 9 months ago (2016-03-11 11:40:04 UTC) #19
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 9 months ago (2016-03-11 12:00:53 UTC) #21
Stefano Sanfilippo
https://codereview.chromium.org/1783503002/diff/160001/tools/ignition_perf_report.py File tools/ignition_perf_report.py (right): https://codereview.chromium.org/1783503002/diff/160001/tools/ignition_perf_report.py#newcode21 tools/ignition_perf_report.py:21: EPILOGUE = """ On 2016/03/11 11:26:49, rmcilroy wrote: > ...
4 years, 9 months ago (2016-03-11 16:33:51 UTC) #22
rmcilroy
LGTM once last comments are addressed. Thanks. https://codereview.chromium.org/1783503002/diff/160001/tools/ignition_perf_report.py File tools/ignition_perf_report.py (right): https://codereview.chromium.org/1783503002/diff/160001/tools/ignition_perf_report.py#newcode21 tools/ignition_perf_report.py:21: EPILOGUE = ...
4 years, 9 months ago (2016-03-14 12:26:52 UTC) #23
Stefano Sanfilippo
https://codereview.chromium.org/1783503002/diff/160001/tools/ignition_perf_report.py File tools/ignition_perf_report.py (right): https://codereview.chromium.org/1783503002/diff/160001/tools/ignition_perf_report.py#newcode21 tools/ignition_perf_report.py:21: EPILOGUE = """ On 2016/03/14 12:26:52, rmcilroy wrote: > ...
4 years, 9 months ago (2016-03-14 13:14:20 UTC) #24
rmcilroy
https://codereview.chromium.org/1783503002/diff/160001/tools/ignition_perf_report.py File tools/ignition_perf_report.py (right): https://codereview.chromium.org/1783503002/diff/160001/tools/ignition_perf_report.py#newcode21 tools/ignition_perf_report.py:21: EPILOGUE = """ On 2016/03/14 13:14:20, Stefano Sanfilippo wrote: ...
4 years, 9 months ago (2016-03-14 14:48:00 UTC) #25
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1783503002/260001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1783503002/260001
4 years, 9 months ago (2016-03-14 15:28:57 UTC) #27
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 9 months ago (2016-03-14 16:12:24 UTC) #29
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1783503002/380001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1783503002/380001
4 years, 8 months ago (2016-04-15 13:46:52 UTC) #33
Stefano Sanfilippo
Code, tests and description updated, PTAL.
4 years, 8 months ago (2016-04-15 14:15:41 UTC) #35
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 8 months ago (2016-04-15 14:23:13 UTC) #37
rmcilroy
https://codereview.chromium.org/1783503002/diff/380001/tools/ignition/linux_perf_report.py File tools/ignition/linux_perf_report.py (right): https://codereview.chromium.org/1783503002/diff/380001/tools/ignition/linux_perf_report.py#newcode24 tools/ignition/linux_perf_report.py:24: # without considering the time spent compiling JS code, ...
4 years, 8 months ago (2016-04-15 14:58:42 UTC) #38
Stefano Sanfilippo
https://codereview.chromium.org/1783503002/diff/380001/tools/ignition/linux_perf_report.py File tools/ignition/linux_perf_report.py (right): https://codereview.chromium.org/1783503002/diff/380001/tools/ignition/linux_perf_report.py#newcode24 tools/ignition/linux_perf_report.py:24: # without considering the time spent compiling JS code, ...
4 years, 8 months ago (2016-04-15 16:13:19 UTC) #39
rmcilroy
LGTM https://codereview.chromium.org/1783503002/diff/380001/tools/ignition/linux_perf_report.py File tools/ignition/linux_perf_report.py (right): https://codereview.chromium.org/1783503002/diff/380001/tools/ignition/linux_perf_report.py#newcode116 tools/ignition/linux_perf_report.py:116: # The chain cannot be empty at this ...
4 years, 8 months ago (2016-04-18 09:22:24 UTC) #40
Stefano Sanfilippo
https://codereview.chromium.org/1783503002/diff/380001/tools/ignition/linux_perf_report.py File tools/ignition/linux_perf_report.py (right): https://codereview.chromium.org/1783503002/diff/380001/tools/ignition/linux_perf_report.py#newcode116 tools/ignition/linux_perf_report.py:116: # The chain cannot be empty at this point ...
4 years, 8 months ago (2016-04-18 10:37:23 UTC) #41
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1783503002/440001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1783503002/440001
4 years, 8 months ago (2016-04-18 10:49:22 UTC) #43
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_linux64_asan_rel_ng on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux64_asan_rel_ng/builds/286)
4 years, 8 months ago (2016-04-18 10:52:10 UTC) #45
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1783503002/440001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1783503002/440001
4 years, 8 months ago (2016-04-18 11:35:07 UTC) #48
commit-bot: I haz the power
Committed patchset #22 (id:440001)
4 years, 8 months ago (2016-04-18 11:46:29 UTC) #50
commit-bot: I haz the power
4 years, 8 months ago (2016-04-18 11:48:01 UTC) #52
Message was sent while issue was closed.
Patchset 22 (id:??) landed as
https://crrev.com/8b5d4c74ec39dd773aa057ba12ed68fd2292eeb0
Cr-Commit-Position: refs/heads/master@{#35574}

Powered by Google App Engine
This is Rietveld 408576698