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@xxxxxxxxxxxxxxxxx/ [2] https://public-inbox.org/git/20180821044724.GA219616@xxxxxxxxxxxxxxxxxxxxxxxxx/ [3] https://public-inbox.org/git/13302a8c-a114-c3a7-65df-55f47f902126@xxxxxxxxx/ [4] https://public-inbox.org/git/20180814195456.GE28452@xxxxxxxxxxxxxxxxxxxxx/ [5] https://public-inbox.org/git/xmqqeff0zn53.fsf@xxxxxxxxxxxxxxxxxxxxxxxxx/ [6] https://public-inbox.org/git/20180818144128.19361-2-pclouds@xxxxxxxxx/ Cc: gitster@pobox.comCc: peff@peff.netCc: peartben@gmail.comCc: jrnieder@gmail.comCc: pclouds@xxxxxxxxx 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