All of lore.kernel.org
 help / color / mirror / Atom feed
From: Josh Steadmon <steadmon@google.com>
To: git@vger.kernel.org
Cc: stolee@gmail.com, git@jeffhostetler.com, szeder.dev@gmail.com
Subject: [RFC PATCH v3 0/3] trace2: don't overload target directories
Date: Fri, 13 Sep 2019 17:25:57 -0700	[thread overview]
Message-ID: <cover.1568419818.git.steadmon@google.com> (raw)
In-Reply-To: <99e4a0fe409a236d210d95e54cd03fce61daa291.1564438745.git.steadmon@google.com>

This is still RFC, as I still haven't done performance testing yet. I'm
mainly looking for feedback right now on patch 3/3, which extends the
tr2_dst API with an optional function to write a custom message into the
overload sentinel file.

Changes since V2:
* Added a new patch (3/3) that allows the different trace2 targets to
  write custom messages to the overload sentinel file.
* Added a new "overload" trace2 event type.
* Bumped up the trace2 event format version.
* Moved the test from t0210 to t0212, so that we can test the custom
  writer for the event target at the same time.
* Removed some unnecessary sanity-checking in the test.
* Fixed a coccicheck complaint about strbuf_addbuf.
* Used hardcoded file modes to be consistent with the rest of the
  project.

Josh Steadmon (3):
  docs: mention trace2 target-dir mode in git-config
  trace2: don't overload target directories
  trace2: write overload message to sentinel files

 Documentation/config/trace2.txt        |   6 ++
 Documentation/technical/api-trace2.txt |  24 +++--
 Documentation/trace2-target-values.txt |   4 +-
 t/t0212-trace2-event.sh                |  17 ++++
 trace2/tr2_dst.c                       | 118 +++++++++++++++++++++++++
 trace2/tr2_dst.h                       |   3 +
 trace2/tr2_sysenv.c                    |   3 +
 trace2/tr2_sysenv.h                    |   2 +
 trace2/tr2_tgt_event.c                 |  21 ++++-
 trace2/tr2_tgt_normal.c                |   2 +-
 trace2/tr2_tgt_perf.c                  |   2 +-
 11 files changed, 191 insertions(+), 11 deletions(-)

Range-diff against v2:
1:  65e05a3db5 = 1:  eacffe250d docs: mention trace2 target-dir mode in git-config
2:  f897a11068 ! 2:  bf20ec8ea2 trace2: don't overload target directories
    @@ Documentation/config/trace2.txt: trace2.destinationDebug::
     +	write a sentinel file that will block further tracing to this
     +	directory. Defaults to 0, which disables this check.
     
    - ## t/t0210-trace2-normal.sh ##
    -@@ t/t0210-trace2-normal.sh: test_expect_success 'using global config with include' '
    + ## t/t0212-trace2-event.sh ##
    +@@ t/t0212-trace2-event.sh: test_expect_success JSON_PP 'using global config, event stream, error event' '
      	test_cmp expect actual
      '
      
    @@ t/t0210-trace2-normal.sh: test_expect_success 'using global config with include'
     +		test_seq $GIT_TRACE2_MAX_FILES >../expected_filenames.txt &&
     +		xargs touch <../expected_filenames.txt &&
     +		cd .. &&
    -+		ls trace_target_dir >first_ls_output.txt &&
    -+		test_cmp expected_filenames.txt first_ls_output.txt &&
    -+		GIT_TRACE2="$(pwd)/trace_target_dir" test-tool trace2 001return 0
    ++		GIT_TRACE2_EVENT="$(pwd)/trace_target_dir" test-tool trace2 001return 0
     +	) &&
     +	echo git-trace2-overload >>expected_filenames.txt &&
    -+	ls trace_target_dir >second_ls_output.txt &&
    -+	test_cmp expected_filenames.txt second_ls_output.txt
    ++	ls trace_target_dir >ls_output.txt &&
    ++	test_cmp expected_filenames.txt ls_output.txt
     +'
     +
      test_done
    @@ trace2/tr2_dst.c: void tr2_dst_trace_disable(struct tr2_dst *dst)
     +	}
     +
     +	/* check sentinel */
    -+	strbuf_addstr(&sentinel_path, path.buf);
    ++	strbuf_addbuf(&sentinel_path, &path);
     +	strbuf_addstr(&sentinel_path, OVERLOAD_SENTINEL_NAME);
     +	if (!stat(sentinel_path.buf, &statbuf)) {
     +		ret = 1;
    @@ trace2/tr2_dst.c: void tr2_dst_trace_disable(struct tr2_dst *dst)
     +		closedir(dirp);
     +
     +	if (file_count >= tr2env_max_files) {
    -+		creat(sentinel_path.buf, S_IRUSR | S_IWUSR);
    ++		creat(sentinel_path.buf, 0666);
     +		ret = 1;
     +		goto cleanup;
     +	}
-:  ---------- > 3:  bab45cb735 trace2: write overload message to sentinel files
-- 
2.23.0.237.gc6a4ce50a0-goog


  parent reply	other threads:[~2019-09-14  0:26 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-07-29 22:20 [RFC PATCH] trace2: don't overload target directories Josh Steadmon
2019-07-30 13:29 ` Derrick Stolee
2019-07-30 21:52   ` Josh Steadmon
2019-07-30 16:46 ` Jeff Hostetler
2019-07-30 22:01   ` Josh Steadmon
2019-07-30 22:02   ` Josh Steadmon
2019-07-30 18:00 ` Jeff Hostetler
2019-07-30 22:08   ` Josh Steadmon
2019-08-02 22:02 ` [RFC PATCH v2 0/2] " Josh Steadmon
2019-08-02 22:02   ` [RFC PATCH v2 1/2] docs: mention trace2 target-dir mode in git-config Josh Steadmon
2019-08-02 22:02   ` [RFC PATCH v2 2/2] trace2: don't overload target directories Josh Steadmon
2019-08-05 15:34     ` Jeff Hostetler
2019-08-05 18:17       ` Josh Steadmon
2019-08-05 18:01     ` SZEDER Gábor
2019-08-05 18:09       ` Josh Steadmon
2019-09-14  0:25 ` Josh Steadmon [this message]
2019-09-14  0:25   ` [RFC PATCH v3 1/3] docs: mention trace2 target-dir mode in git-config Josh Steadmon
2019-09-14  0:25   ` [RFC PATCH v3 2/3] trace2: don't overload target directories Josh Steadmon
2019-09-14  0:26   ` [RFC PATCH v3 3/3] trace2: write overload message to sentinel files Josh Steadmon
2019-09-16 12:07     ` Derrick Stolee
2019-09-16 14:11       ` Jeff Hostetler
2019-09-16 18:20         ` Josh Steadmon
2019-09-19 18:23           ` Jeff Hostetler
2019-09-19 22:47             ` Josh Steadmon
2019-09-20 15:59               ` Jeff Hostetler
2019-09-16 18:07       ` Josh Steadmon
2019-10-03 23:32 ` [PATCH v4 0/4] trace2: don't overload target directories Josh Steadmon
2019-10-03 23:32   ` [PATCH v4 1/4] docs: mention trace2 target-dir mode in git-config Josh Steadmon
2019-10-03 23:32   ` [PATCH v4 2/4] docs: clarify trace2 version invariants Josh Steadmon
2019-10-03 23:32   ` [PATCH v4 3/4] trace2: don't overload target directories Josh Steadmon
2019-10-04  0:25     ` Junio C Hamano
2019-10-04 21:57       ` Josh Steadmon
2019-10-04  9:12     ` Johannes Schindelin
2019-10-04 22:05       ` Josh Steadmon
2019-10-03 23:32   ` [PATCH v4 4/4] trace2: write overload message to sentinel files Josh Steadmon
2019-10-04 22:08 ` [PATCH v5 0/4] trace2: discard new traces if the target directory contains too many files Josh Steadmon
2019-10-04 22:08   ` [PATCH v5 1/4] docs: mention trace2 target-dir mode in git-config Josh Steadmon
2019-10-04 22:08   ` [PATCH v5 2/4] docs: clarify trace2 version invariants Josh Steadmon
2019-10-04 22:08   ` [PATCH v5 3/4] trace2: discard new traces if target directory has too many files Josh Steadmon
2019-10-04 22:08   ` [PATCH v5 4/4] trace2: write discard message to sentinel files Josh Steadmon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cover.1568419818.git.steadmon@google.com \
    --to=steadmon@google.com \
    --cc=git@jeffhostetler.com \
    --cc=git@vger.kernel.org \
    --cc=stolee@gmail.com \
    --cc=szeder.dev@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.