[PATCH 0/8] WIP: trace2: a new trace facility
- From
- Jeff Hostetler via GitGitGadget <gitgitgadget@gmail.com>
- Date
- Aug 31, 2018, 16:49 UTC
- Message-ID
- <pull.29.git.gitgitgadget@gmail.com>
This patch series contains a new trace2 facility that hopefully addresses the recent trace- and structured-logging-related discussions. The intent is to eventually replace the existing trace_ routines (or to route them to the new trace2_ routines) as time permits.
This draft adds new trace2_ calls and leaves most of the original trace_ calls in place. Subsequent drafts will address this.
This version should be considered a replacement for my earlier structured logging patch series [1].
It addresses Jonathan Nieder's, Ben Peart's, Peff's, and Junio's comments [2,3,4,5] about merging the existing tracing routines, ease of use, progressive logging rather than logging at the end of the program, hiding all JSON details inside the trace2_ routines, and leaving an opening for additional formats (protobuf or whatever).
It also adds a nested performance tracing feature similar to Duy's suggestion in [6]. This version adds per-thread nesting and marks each event with a thread name.
[1] https://public-inbox.org/git/20180713165621.52017-1-git@jeffhostetler.com/ [2] https://public-inbox.org/git/20180821044724.GA219616@aiede.svl.corp.google.com/ [3] https://public-inbox.org/git/13302a8c-a114-c3a7-65df-55f47f902126@gmail.com/ [4] https://public-inbox.org/git/20180814195456.GE28452@sigill.intra.peff.net/ [5] https://public-inbox.org/git/xmqqeff0zn53.fsf@gitster-ct.c.googlers.com/ [6] https://public-inbox.org/git/20180818144128.19361-2-pclouds@gmail.com/
Cc: gitster@pobox.comCc: peff@peff.netCc: peartben@gmail.comCc: jrnieder@gmail.comCc: pclouds@gmail.com
Jeff Hostetler (8): trace2: create new combined trace facility trace2: add trace2 to main trace2: demonstrate trace2 regions in wt-status trace2: demonstrate trace2 child process classification trace2: demonstrate instrumenting do_read_index trace2: demonstrate instrumenting threaded preload_index trace2: demonstrate setting sub-command parameter in checkout trace2: demonstrate use of regions in read_directory_recursive
Makefile | 1 + builtin/checkout.c | 5 + cache.h | 1 + compat/mingw.h | 3 +- dir.c | 3 + editor.c | 1 + git-compat-util.h | 7 + git.c | 9 +- pager.c | 1 + preload-index.c | 10 + read-cache.c | 6 + repository.c | 2 + run-command.c | 8 +- run-command.h | 5 + sub-process.c | 1 + trace2.c | 1592 ++++++++++++++++++++++++++++++++++++++++++++ trace2.h | 214 ++++++ usage.c | 5 + wt-status.c | 14 +- 19 files changed, 1882 insertions(+), 6 deletions(-) create mode 100644 trace2.c create mode 100644 trace2.h
base-commit: 2f743933341f276111103550fbf383a34dfcfd38 Published-As: https://github.com/gitgitgadget/git/releases/tags/pr-29%2Fjeffhostetler%2Fml-trace2-v0-v1 Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-29/jeffhostetler/ml-trace2-v0-v1 Pull-Request: https://github.com/gitgitgadget/git/pull/29
-- gitgitgadget