Skip to content

Commit add58fe

Browse files
committed
WIP: FlameGraph and Trace2 API article
1 parent c13c1ba commit add58fe

File tree

1 file changed

+52
-2
lines changed

1 file changed

+52
-2
lines changed

rev_news/drafts/edition-52.md

+52-2
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,59 @@ This edition covers what happened during the month of May 2019.
1717

1818
## Discussions
1919

20-
<!---
20+
2121
### General
22-
-->
22+
23+
* [I made a flame graph renderer for git's trace2 output](https://public-inbox.org/git/[email protected]/)
24+
25+
Ævar Arnfjörð Bjarmason sent an email saying he developed a script that uses the
26+
[FlameGraph tool](http://www.brendangregg.com/flamegraphs.html)
27+
and the new
28+
[Git Trace2 API](https://github.com/git/git/blob/master/Documentation/technical/api-trace2.txt)
29+
to generate a
30+
[picture](https://vm.nix.is/~avar/noindex/git-tests.svg) showing
31+
where Git's test suite spends its time.
32+
33+
He added that he plans to improve
34+
[his script](https://github.com/avar/FlameGraph/commit/7a834718a12ed8b0d897ee90b00e2f654508cabd)
35+
over time and maybe submit it in a Pull Request to the FlameGraph
36+
tool, or perhaps integrate it in the Git test suite.
37+
38+
The Trace2 API, has been de
39+
40+
Derrick Stolee, who prefers to be called just Stolee, replied that
41+
he liked the idea and sent the commands using Ævar's script that he used to create
42+
[another picture](https://github.com/derrickstolee/FlameGraph/blob/git-test/git-test.svg)
43+
from a much smaller test.
44+
45+
Gábor Szeder commented on Stolee's commands to ask why "GIT_TR2"
46+
instead of "GIT_TRACE2" was used in the environment variables
47+
related to the Trace2 API. Gábor refered to Ken Thompson "who
48+
(allegedly?) later regretted spelling creat()/O_CREAT without the
49+
'e'..."
50+
51+
Jeff King, alias Peff, replied to Ævar's initial email asking
52+
"doesn't `perf record -g make test` already give us that granular
53+
data?" refering to the [Linux perf tool](https://en.wikipedia.org/wiki/Perf_(Linux))
54+
which is already supported by the FlameGraph tool. Peff also
55+
wondered about the usefulness of such a graph:
56+
57+
> But having generated such a flamegraph, it's not all that helpful. It
58+
> mainly tells us that we spend a lot of time on fork/exec. Which is no
59+
> surprise, since the test suite is geared not towards heavy workloads,
60+
> but lots of tiny functionality tests.
61+
62+
Though he agreed that it could help in some cases:
63+
64+
> I think the trace2 flamegraph would be most useful if you were
65+
> collecting across a broad spectrum of workloads done by a user. You
66+
> _can_ do that with perf or similar tools, but it can be a bit awkward.
67+
68+
Ævar replied that his "actual use-case for this is to see what
69+
production nodes are spending their time on, similar to what Microsoft
70+
is doing with their use of this facility."
71+
72+
Jeff Hostetler, who initialy authored the Trace2 API
2373

2474
<!---
2575
### Reviews

0 commit comments

Comments
 (0)