git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v4 0/4] trace2: don't overload target directories

From
Josh Steadmon <steadmon@google.com>
Date
Oct 3, 2019, 23:32 UTC
Message-ID
<cover.1570144820.git.steadmon@google.com>
In-Reply-To
<99e4a0fe409a236d210d95e54cd03fce61daa291.1564438745.git.steadmon@google.com>

Apologies for the delayed reply. I've added a new documentation patch describing what we expect w.r.t. the version event and its "evt" field. I've also reworked the final patch to allow writing a full trace session to the sentinel file, and to make sure that the overload event comes after the version event.

I am still incrementing the EVT and writing a new "overload" event, since you said in the last review that this approache seems best to you. But I am also happy to keep the EVT=1 and make "overload" a new field in the "version" event if you've changed your mind.

Josh Steadmon (4):
  docs: mention trace2 target-dir mode in git-config
  docs: clarify trace2 version invariants
  trace2: don't overload target directories
  trace2: write overload message to sentinel files
 Documentation/config/trace2.txt        |   6 ++
 Documentation/technical/api-trace2.txt |  30 +++++--
 Documentation/trace2-target-values.txt |   4 +-
 t/t0212-trace2-event.sh                |  19 +++++
 trace2/tr2_dst.c                       | 113 ++++++++++++++++++++++---
 trace2/tr2_dst.h                       |   1 +
 trace2/tr2_sysenv.c                    |   3 +
 trace2/tr2_sysenv.h                    |   2 +
 trace2/tr2_tgt_event.c                 |  31 +++++--
 trace2/tr2_tgt_normal.c                |   2 +-
 trace2/tr2_tgt_perf.c                  |   2 +-
 11 files changed, 185 insertions(+), 28 deletions(-)
Range-diff against v3:
-:  ---------- > 1:  a757bca8f9 docs: clarify trace2 version invariants
1:  bf20ec8ea2 ! 2:  98a8440d3f trace2: don't overload target directories
    @@ Commit message
         The config can also be overridden with a new environment variable:
         GIT_TRACE2_MAX_FILES.
     
    -    Potential future work:
    -    * Write a message into the sentinel file (should match the requested
    -      trace2 output format).
    -    * Add a performance test to make sure that contention between multiple
    -      processes all writing to the same target directory does not become an
    -      issue.
    -
     
      ## Documentation/config/trace2.txt ##
    @@ trace2/tr2_dst.c: void tr2_dst_trace_disable(struct tr2_dst *dst)
     +	struct strbuf path = STRBUF_INIT, sentinel_path = STRBUF_INIT;
     +	struct stat statbuf;
     +
    -+	strbuf_addstr(&path, tgt_prefix);
    -+	if (!is_dir_sep(path.buf[path.len - 1])) {
    -+		strbuf_addch(&path, '/');
    -+	}
    -+
     +	/* Get the config or envvar and decide if we should continue this check */
     +	max_files_var = tr2_sysenv_get(TR2_SYSENV_MAX_FILES);
     +	if (max_files_var && *max_files_var && ((max_files = atoi(max_files_var)) >= 0))
    @@ trace2/tr2_dst.c: void tr2_dst_trace_disable(struct tr2_dst *dst)
     +		goto cleanup;
     +	}
     +
    ++	strbuf_addstr(&path, tgt_prefix);
    ++	if (!is_dir_sep(path.buf[path.len - 1])) {
    ++		strbuf_addch(&path, '/');
    ++	}
    ++
     +	/* check sentinel */
     +	strbuf_addbuf(&sentinel_path, &path);
     +	strbuf_addstr(&sentinel_path, OVERLOAD_SENTINEL_NAME);
2:  bab45cb735 < -:  ---------- trace2: write overload message to sentinel files
-:  ---------- > 3:  790c5ac95a trace2: write overload message to sentinel files
-- 
2.23.0.581.g78d2f28ef7-goog
Previous: Josh SteadmonNext: Josh Steadmon
Message 27 of 40 in “trace2: don't overload target directories”
  1. trace2: don't overload target directoriesJosh Steadmon, Jul 29, 2019
  2. Derrick StoleeJul 30, 2019
  3. Josh SteadmonJul 30, 2019
  4. Jeff HostetlerJul 30, 2019
  5. Josh SteadmonJul 30, 2019
  6. Josh SteadmonJul 30, 2019
  7. Jeff HostetlerJul 30, 2019
  8. Josh SteadmonJul 30, 2019
  9. 0/2 trace2: don't overload target directoriesJosh Steadmon, Aug 2, 2019
  10. 1/2 docs: mention trace2 target-dir mode in git-configJosh Steadmon, Aug 2, 2019
  11. 2/2 trace2: don't overload target directoriesJosh Steadmon, Aug 2, 2019
  12. Jeff HostetlerAug 5, 2019
  13. Josh SteadmonAug 5, 2019
  14. SZEDER GáborAug 5, 2019
  15. Josh SteadmonAug 5, 2019
  16. 0/3 trace2: don't overload target directoriesJosh Steadmon, Sep 14, 2019
  17. 1/3 docs: mention trace2 target-dir mode in git-configJosh Steadmon, Sep 14, 2019
  18. 2/3 trace2: don't overload target directoriesJosh Steadmon, Sep 14, 2019
  19. 3/3 trace2: write overload message to sentinel filesJosh Steadmon, Sep 14, 2019
  20. Derrick StoleeSep 16, 2019
  21. Jeff HostetlerSep 16, 2019
  22. Josh SteadmonSep 16, 2019
  23. Jeff HostetlerSep 19, 2019
  24. Josh SteadmonSep 19, 2019
  25. Jeff HostetlerSep 20, 2019
  26. Josh SteadmonSep 16, 2019
  27. 0/4 trace2: don't overload target directoriesJosh Steadmon, Oct 3, 2019
  28. 1/4 docs: mention trace2 target-dir mode in git-configJosh Steadmon, Oct 3, 2019
  29. 2/4 docs: clarify trace2 version invariantsJosh Steadmon, Oct 3, 2019
  30. 3/4 trace2: don't overload target directoriesJosh Steadmon, Oct 3, 2019
  31. Junio C HamanoOct 4, 2019
  32. Josh SteadmonOct 4, 2019
  33. Johannes SchindelinOct 4, 2019
  34. Josh SteadmonOct 4, 2019
  35. 4/4 trace2: write overload message to sentinel filesJosh Steadmon, Oct 3, 2019
  36. 0/4 trace2: discard new traces if the target directory contains too many filesJosh Steadmon, Oct 4, 2019
  37. 1/4 docs: mention trace2 target-dir mode in git-configJosh Steadmon, Oct 4, 2019
  38. 2/4 docs: clarify trace2 version invariantsJosh Steadmon, Oct 4, 2019
  39. 3/4 trace2: discard new traces if target directory has too many filesJosh Steadmon, Oct 4, 2019
  40. 4/4 trace2: write discard message to sentinel filesJosh Steadmon, Oct 4, 2019

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.