linux-trace-devel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/3] trace-cmd: Some minor updates and a timestamp checker
@ 2020-12-01 18:36 Steven Rostedt
  2020-12-01 18:36 ` [PATCH 1/3] trace-cmd: Fix whitespace in usage message of trace-cmd report --ts-diff Steven Rostedt
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Steven Rostedt @ 2020-12-01 18:36 UTC (permalink / raw)
  To: linux-trace-devel

Steven Rostedt (VMware) (3):
      trace-cmd: Fix whitespace in usage message of trace-cmd report --ts-diff
      trace-cmd: Add reference to trace-cmd.org in README
      trace-cmd: Add --ts-check option to report

----
 Documentation/trace-cmd-report.1.txt |  4 ++++
 README                               |  3 +++
 tracecmd/trace-read.c                | 27 ++++++++++++++++++++++++++-
 tracecmd/trace-usage.c               |  3 ++-
 4 files changed, 35 insertions(+), 2 deletions(-)

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH 1/3] trace-cmd: Fix whitespace in usage message of trace-cmd report --ts-diff
  2020-12-01 18:36 [PATCH 0/3] trace-cmd: Some minor updates and a timestamp checker Steven Rostedt
@ 2020-12-01 18:36 ` Steven Rostedt
  2020-12-01 18:36 ` [PATCH 2/3] trace-cmd: Add reference to trace-cmd.org in README Steven Rostedt
  2020-12-01 18:36 ` [PATCH 3/3] trace-cmd: Add --ts-check option to report Steven Rostedt
  2 siblings, 0 replies; 4+ messages in thread
From: Steven Rostedt @ 2020-12-01 18:36 UTC (permalink / raw)
  To: linux-trace-devel

From: "Steven Rostedt (VMware)" <rostedt@goodmis.org>

The "--ts-diff" description in "trace-cmd report -h" is not lined up with
the other long options. Fix the whitespace so that it is.

Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
---
 tracecmd/trace-usage.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tracecmd/trace-usage.c b/tracecmd/trace-usage.c
index 79610bd36bb7..5d73c5982984 100644
--- a/tracecmd/trace-usage.c
+++ b/tracecmd/trace-usage.c
@@ -228,7 +228,7 @@ static struct usage_help usage_help[] = {
 		"                     to convert the displayed timestamps to seconds\n"
 		"                     Affects the previous data file, unless there was no\n"
 		"                     previous data file, in which case it becomes default\n"
-		"           --ts-diff Show the delta timestamp between events.\n"
+		"          --ts-diff Show the delta timestamp between events.\n"
 	},
 	{
 		"stream",
-- 
2.28.0



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 2/3] trace-cmd: Add reference to trace-cmd.org in README
  2020-12-01 18:36 [PATCH 0/3] trace-cmd: Some minor updates and a timestamp checker Steven Rostedt
  2020-12-01 18:36 ` [PATCH 1/3] trace-cmd: Fix whitespace in usage message of trace-cmd report --ts-diff Steven Rostedt
@ 2020-12-01 18:36 ` Steven Rostedt
  2020-12-01 18:36 ` [PATCH 3/3] trace-cmd: Add --ts-check option to report Steven Rostedt
  2 siblings, 0 replies; 4+ messages in thread
From: Steven Rostedt @ 2020-12-01 18:36 UTC (permalink / raw)
  To: linux-trace-devel

From: "Steven Rostedt (VMware)" <rostedt@goodmis.org>

This repo is mirrored in my personal github account, but that account is not
mirrored, and there's been people submitting issues there. Add to the
README, a reference to trace-cmd.org so that people will hopefully know the
correct way to contribute.

Reported-by: David Runge (on IRC)
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
---
 README | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/README b/README
index fb06e754ee76..11531524e3bc 100644
--- a/README
+++ b/README
@@ -1,4 +1,7 @@
 
+
+  For more information on contributing please see: https://www.trace-cmd.org
+
 Note: The official repositiory for trace-cmd and KernelShark is here:
 
  git://git.kernel.org/pub/scm/utils/trace-cmd/trace-cmd.git
-- 
2.28.0



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 3/3] trace-cmd: Add --ts-check option to report
  2020-12-01 18:36 [PATCH 0/3] trace-cmd: Some minor updates and a timestamp checker Steven Rostedt
  2020-12-01 18:36 ` [PATCH 1/3] trace-cmd: Fix whitespace in usage message of trace-cmd report --ts-diff Steven Rostedt
  2020-12-01 18:36 ` [PATCH 2/3] trace-cmd: Add reference to trace-cmd.org in README Steven Rostedt
@ 2020-12-01 18:36 ` Steven Rostedt
  2 siblings, 0 replies; 4+ messages in thread
From: Steven Rostedt @ 2020-12-01 18:36 UTC (permalink / raw)
  To: linux-trace-devel

From: "Steven Rostedt (VMware)" <rostedt@goodmis.org>

Add a --ts-check option to trace-cmd report that will make sure that the
timestamps do not go backwards, and will print out an error message if they
do.

Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
---
 Documentation/trace-cmd-report.1.txt |  4 ++++
 tracecmd/trace-read.c                | 27 ++++++++++++++++++++++++++-
 tracecmd/trace-usage.c               |  1 +
 3 files changed, 31 insertions(+), 1 deletion(-)

diff --git a/Documentation/trace-cmd-report.1.txt b/Documentation/trace-cmd-report.1.txt
index 864eb2d71f6a..de616cf4b47a 100644
--- a/Documentation/trace-cmd-report.1.txt
+++ b/Documentation/trace-cmd-report.1.txt
@@ -305,6 +305,10 @@ OPTIONS
      Show the time differences between events. The difference will appear in
      parenthesis just after the timestamp.
 
+*--ts-check*::
+     Make sure no timestamp goes backwards, and if it does, print out a warning
+     message of the fact.
+
 EXAMPLES
 --------
 
diff --git a/tracecmd/trace-read.c b/tracecmd/trace-read.c
index e18110745d37..8932c18db25b 100644
--- a/tracecmd/trace-read.c
+++ b/tracecmd/trace-read.c
@@ -99,6 +99,7 @@ static int no_irqs;
 static int no_softirqs;
 
 static int tsdiff;
+static int tscheck;
 
 static int latency_format;
 static bool raw_format;
@@ -1192,6 +1193,7 @@ enum output_type {
 static void read_data_info(struct list_head *handle_list, enum output_type otype,
 			   int global)
 {
+	unsigned long long *last_timestamp;
 	struct handle_list *handles;
 	struct handle_list *last_handle;
 	struct tep_record *record;
@@ -1216,6 +1218,10 @@ static void read_data_info(struct list_head *handle_list, enum output_type otype
 		print_handle_file(handles);
 		printf("cpus=%d\n", cpus);
 
+		last_timestamp = calloc(cpus, sizeof(*last_timestamp));
+		if (!last_timestamp)
+			die("allocating timestamps");
+
 		/* Latency trace is just all ASCII */
 		if (ret > 0) {
 			if (multi_inputs)
@@ -1286,6 +1292,8 @@ static void read_data_info(struct list_head *handle_list, enum output_type otype
 
 		list_for_each_entry(handles, handle_list, list) {
 			record = get_next_record(handles);
+			if (!record)
+				continue;
 			if (!last_record ||
 			    (record && record->ts < last_record->ts)) {
 				last_record = record;
@@ -1293,12 +1301,24 @@ static void read_data_info(struct list_head *handle_list, enum output_type otype
 			}
 		}
 		if (last_record) {
+			int cpu = last_record->cpu;
+			if (cpu >= cpus)
+				die("cpu %d creater than %d\n", cpu, cpus);
+			if (tscheck && last_timestamp[cpu] > last_record->ts)
+				errno = 0;
+				warning("WARNING: Record on cpu %d went backwards: %lld to %lld delta: -%lld\n",
+					cpu, last_timestamp[cpu],
+					last_record->ts,
+					last_timestamp[cpu] - last_record->ts);
+			last_timestamp[cpu] = last_record->ts;
 			print_handle_file(last_handle);
 			trace_show_data(last_handle->handle, last_record);
 			free_handle_record(last_handle);
 		}
 	} while (last_record);
 
+	free(last_timestamp);
+
 	if (profile)
 		do_trace_profile();
 
@@ -1463,7 +1483,8 @@ static void add_hook(const char *arg)
 }
 
 enum {
-	OPT_version	= 238,
+	OPT_version	= 237,
+	OPT_tscheck	= 238,
 	OPT_tsdiff	= 239,
 	OPT_ts2secs	= 240,
 	OPT_tsoffset	= 241,
@@ -1550,6 +1571,7 @@ void trace_report (int argc, char **argv)
 			{"ts-offset", required_argument, NULL, OPT_tsoffset},
 			{"ts2secs", required_argument, NULL, OPT_ts2secs},
 			{"ts-diff", no_argument, NULL, OPT_tsdiff},
+			{"ts-check", no_argument, NULL, OPT_tscheck},
 			{"help", no_argument, NULL, '?'},
 			{NULL, 0, NULL, 0}
 		};
@@ -1719,6 +1741,9 @@ void trace_report (int argc, char **argv)
 		case OPT_tsdiff:
 			tsdiff = 1;
 			break;
+		case OPT_tscheck:
+			tscheck = 1;
+			break;
 		default:
 			usage(argv);
 		}
diff --git a/tracecmd/trace-usage.c b/tracecmd/trace-usage.c
index 5d73c5982984..0a338ed7d19c 100644
--- a/tracecmd/trace-usage.c
+++ b/tracecmd/trace-usage.c
@@ -229,6 +229,7 @@ static struct usage_help usage_help[] = {
 		"                     Affects the previous data file, unless there was no\n"
 		"                     previous data file, in which case it becomes default\n"
 		"          --ts-diff Show the delta timestamp between events.\n"
+		"          --ts-check Check to make sure no time stamp on any CPU goes backwards.\n"
 	},
 	{
 		"stream",
-- 
2.28.0



^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2020-12-01 18:38 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-12-01 18:36 [PATCH 0/3] trace-cmd: Some minor updates and a timestamp checker Steven Rostedt
2020-12-01 18:36 ` [PATCH 1/3] trace-cmd: Fix whitespace in usage message of trace-cmd report --ts-diff Steven Rostedt
2020-12-01 18:36 ` [PATCH 2/3] trace-cmd: Add reference to trace-cmd.org in README Steven Rostedt
2020-12-01 18:36 ` [PATCH 3/3] trace-cmd: Add --ts-check option to report Steven Rostedt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).