On Fri, Jul 22 2022, tenglong.tl wrote: > From: Teng Long <dyroneteng@xxxxxxxxx> > > It's supported to print "interesting" config key-value paire > to tr2 log by setting "GIT_TRACE2_CONFIG_PARAMS" environment > variable and the "trace2.configparam" config, let's add the > related docs in Documentaion/technical/api-trace2.txt. > > Signed-off-by: Teng Long <dyroneteng@xxxxxxxxx> > --- > Documentation/technical/api-trace2.txt | 32 ++++++++++++++++++++++++++ > 1 file changed, 32 insertions(+) > > diff --git a/Documentation/technical/api-trace2.txt b/Documentation/technical/api-trace2.txt > index 77a150b30e..ddc0bfb9c9 100644 > --- a/Documentation/technical/api-trace2.txt > +++ b/Documentation/technical/api-trace2.txt > @@ -717,6 +717,7 @@ The "exec_id" field is a command-unique id and is only useful if the > { > "event":"def_param", > ... > + "scope":"global", > "param":"core.abbrev", > "value":"7" > } > @@ -1207,6 +1208,37 @@ at offset 508. > This example also shows that thread names are assigned in a racy manner > as each thread starts and allocates TLS storage. > > +Print Configs:: > + > + Dump "interesting" config values to trace2 log. > ++ > +The environment variable `GIT_TRACE2_CONFIG_PARAMS` and configuration > +`trace2.configparams` can be used to output config values which you care > +about(see linkgit:git-config[1). For example: I didn't notice this before, but this is an addition to a long section where the examples are ------- delimited, starting with "in this example.." usually. So this "print configs" seems like on odd continuation. Shouldn't this copy the template of "Thread Events::" above. I.e. something like (I have not tried to asciidoc render this): Config (def param) Events:: We can optionally emit configuration events, see `trace2.configParams` in linkgit:git-config[1] for how to enable it. + < your example below would follow this> I.e. re my earlier mention of git-config we it explains GIT_TRACE2_CONFIG_PARAMS, so perhaps it suffices to just link to linkgit:git-config[1] for that. Also a nit: trace2.configParams, not trace2.configparams. > ++ > +---------------- > +$ git config color.ui auto > +---------------- > ++ > +Then, mark the config `color.ui` as "interesting" config with > +`GIT_TRACE2_CONFIG_PARAMS`: > ++ > +---------------- > +$ export GIT_TRACE2_PERF_BRIEF=1 > +$ export GIT_TRACE2_PERF=~/log.perf > +$ export GIT_TRACE2_CONFIG_PARAMS=color.ui > +$ git version > +... > +$ cat ~/log.perf > +d0 | main | version | | | | | ... > +d0 | main | start | | 0.001642 | | | /usr/local/bin/git version > +d0 | main | cmd_name | | | | | version (version) > +d0 | main | def_param | | | | | color.ui:auto > +d0 | main | data | r0 | 0.002100 | 0.002100 | fsync | fsync/writeout-only:0 > +d0 | main | data | r0 | 0.002126 | 0.002126 | fsync | fsync/hardware-flush:0 > +d0 | main | exit | | 0.002142 | | | code:0 > +d0 | main | atexit | | 0.002161 | | | code:0 > +---------------- > == Future Work > > === Relationship to the Existing Trace Api (api-trace.txt)