api-trace2.txt: print config key-value pair

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@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Teng Long 2022-08-12 10:56:45 +08:00 committed by Junio C Hamano
parent 9dd64cb4d3
commit 050d0dc241

View File

@ -1207,6 +1207,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.
Config (def param) Events::
Dump "interesting" config values to trace2 log.
+
We can optionally emit configuration events, see
`trace2.configparams` in linkgit:git-config[1] for how to enable
it.
+
----------------
$ 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)