From: Steven Rostedt <rostedt@goodmis.org>
To: "Tzvetomir Stoyanov (VMware)" <tz.stoyanov@gmail.com>
Cc: linux-trace-devel@vger.kernel.org
Subject: Re: [PATCH v3 02/23] trace-cmd: Extend trace-cmd dump subcommand to display the clock
Date: Wed, 24 Mar 2021 13:57:28 -0400 [thread overview]
Message-ID: <20210324135728.3559392c@gandalf.local.home> (raw)
In-Reply-To: <20210324130418.436206-3-tz.stoyanov@gmail.com>
On Wed, 24 Mar 2021 15:03:57 +0200
"Tzvetomir Stoyanov (VMware)" <tz.stoyanov@gmail.com> wrote:
> Trace clock, used to record the tracing data is saved in the trace.dat
> file. As "trace-cmd dump" command shows the metadata content of the
> file, it should display the trace clock also.
> Added a new parameter
> "trace-cmd dump --clock"
> which shows the clock saved in the file. The clock can be displayed
> also with
> "trace-cmd dump --all"
>
> Signed-off-by: Tzvetomir Stoyanov (VMware) <tz.stoyanov@gmail.com>
> ---
> Documentation/trace-cmd/trace-cmd-dump.1.txt | 2 ++
> tracecmd/trace-dump.c | 34 +++++++++++++++++++-
> tracecmd/trace-usage.c | 1 +
> 3 files changed, 36 insertions(+), 1 deletion(-)
>
> diff --git a/Documentation/trace-cmd/trace-cmd-dump.1.txt b/Documentation/trace-cmd/trace-cmd-dump.1.txt
> index 71b8e655..0f8626fa 100644
> --- a/Documentation/trace-cmd/trace-cmd-dump.1.txt
> +++ b/Documentation/trace-cmd/trace-cmd-dump.1.txt
> @@ -46,6 +46,8 @@ OPTIONS
> Print all options, stored in the file.
> *--flyrecord*::
> Print the offset and the size of tracing data per each CPU.
> +*--clock*::
> + Print the trace clock, used for timestamp of the tracing events, stored in the file.
> *--all*::
> Print all meta data from the file.
> *--help*::
> diff --git a/tracecmd/trace-dump.c b/tracecmd/trace-dump.c
> index 6172231e..4bdfd53f 100644
> --- a/tracecmd/trace-dump.c
> +++ b/tracecmd/trace-dump.c
> @@ -24,6 +24,7 @@
>
> static struct tep_handle *tep;
> static unsigned int trace_cpus;
> +static int has_clock;
>
> enum dump_items {
> SUMMARY = (1 << 0),
> @@ -37,6 +38,7 @@ enum dump_items {
> CMDLINES = (1 << 8),
> OPTIONS = (1 << 9),
> FLYRECORD = (1 << 10),
> + CLOCK = (1 << 11),
> };
>
> enum dump_items verbosity;
> @@ -496,7 +498,7 @@ static void dump_options(int fd)
> die("cannot read the option size");
>
> count++;
> - if (!DUMP_CHECK(OPTIONS)) {
> + if (!DUMP_CHECK(OPTIONS) && !DUMP_CHECK(CLOCK)) {
> lseek64(fd, size, SEEK_CUR);
> continue;
> }
> @@ -512,6 +514,7 @@ static void dump_options(int fd)
> break;
> case TRACECMD_OPTION_TRACECLOCK:
> dump_option_string(fd, size, "TRACECLOCK");
> + has_clock = 1;
Shouldn't "trace-cmd dump" also show the clock that's stored in the file,
or will it only show the option?
I'd like to see the file as well, but all I get is:
[Tracing clock]
No tracing clock saved in the file
Which isn't true. It's just not an option.
-- Steve
> break;
> case TRACECMD_OPTION_UNAME:
> dump_option_string(fd, size, "UNAME");
> @@ -556,6 +559,29 @@ static void dump_latency(int fd)
> do_print(SUMMARY, "\t[Latency tracing data]\n");
> }
>
> +static void dump_clock(int fd)
> +{
> + long long size;
> + char *clock;
> +
> + do_print((SUMMARY | CLOCK), "\t[Tracing clock]\n");
> + if (!has_clock) {
> + do_print((SUMMARY | CLOCK), "\t\t No tracing clock saved in the file\n");
> + return;
> + }
> + if (read_file_number(fd, &size, 8))
> + die("cannot read clock size");
> + clock = calloc(1, size);
> + if (!clock)
> + die("cannot allocate clock %d bytes", size);
> +
> + if (read_file_bytes(fd, clock, size))
> + die("cannot read clock %d bytes", size);
> + clock[size] = 0;
> + do_print((SUMMARY | CLOCK), "\t\t%s\n", clock);
> + free(clock);
> +}
> +
> static void dump_flyrecord(int fd)
> {
> long long cpu_offset;
> @@ -572,6 +598,7 @@ static void dump_flyrecord(int fd)
> do_print(FLYRECORD, "\t\t %lld %lld\t[offset, size of cpu %d]\n",
> cpu_offset, cpu_size, i);
> }
> + dump_clock(fd);
> }
>
> static void dump_therest(int fd)
> @@ -626,6 +653,7 @@ static void dump_file(const char *file)
> }
>
> enum {
> + OPT_clock = 243,
> OPT_all = 244,
> OPT_summary = 245,
> OPT_flyrecord = 246,
> @@ -666,6 +694,7 @@ void trace_dump(int argc, char **argv)
> {"cmd-lines", no_argument, NULL, OPT_cmd_lines},
> {"options", no_argument, NULL, OPT_options},
> {"flyrecord", no_argument, NULL, OPT_flyrecord},
> + {"clock", no_argument, NULL, OPT_clock},
> {"validate", no_argument, NULL, 'v'},
> {"help", no_argument, NULL, '?'},
> {NULL, 0, NULL, 0}
> @@ -721,6 +750,9 @@ void trace_dump(int argc, char **argv)
> case OPT_head_page:
> verbosity |= HEAD_PAGE;
> break;
> + case OPT_clock:
> + verbosity |= CLOCK;
> + break;
> default:
> usage(argv);
> }
> diff --git a/tracecmd/trace-usage.c b/tracecmd/trace-usage.c
> index 1a7abd58..22537d20 100644
> --- a/tracecmd/trace-usage.c
> +++ b/tracecmd/trace-usage.c
> @@ -377,6 +377,7 @@ static struct usage_help usage_help[] = {
> " --cmd-lines print information mapping a PID to a process name\n"
> " --options print options\n"
> " --flyrecord information of offset and count of recorded events per CPU\n"
> + " --clock trace clock, saved in the file\n"
> " -h, --help show usage information\n"
> },
> {
next prev parent reply other threads:[~2021-03-24 17:58 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-24 13:03 [PATCH v3 00/23] TSC trace clock to nanosecond conversion Tzvetomir Stoyanov (VMware)
2021-03-24 13:03 ` [PATCH v3 01/23] trace-cmd: Add initial perf interface in trace-cmd library Tzvetomir Stoyanov (VMware)
2021-03-24 13:03 ` [PATCH v3 02/23] trace-cmd: Extend trace-cmd dump subcommand to display the clock Tzvetomir Stoyanov (VMware)
2021-03-24 17:57 ` Steven Rostedt [this message]
2021-03-24 18:02 ` Steven Rostedt
2021-03-24 13:03 ` [PATCH v3 03/23] trace-cmd: Save only the selected clock in the trace.dat file Tzvetomir Stoyanov (VMware)
2021-03-24 13:03 ` [PATCH v3 04/23] trace-cmd: Internal refactoring, move logic for local tep handler in its own function Tzvetomir Stoyanov (VMware)
2021-03-24 13:04 ` [PATCH v3 05/23] trace-cmd: Add new local function to check if a trace clock is supported Tzvetomir Stoyanov (VMware)
2021-03-24 17:49 ` Steven Rostedt
2021-03-24 13:04 ` [PATCH v3 06/23] trace-cmd: Add new trace-cmd clock tsc2nsec Tzvetomir Stoyanov (VMware)
2021-03-24 15:05 ` Steven Rostedt
2021-03-24 15:20 ` Steven Rostedt
2021-03-24 15:38 ` Tzvetomir Stoyanov
2021-03-24 16:22 ` Steven Rostedt
2021-03-24 16:56 ` Tzvetomir Stoyanov
2021-03-24 20:55 ` Steven Rostedt
2021-03-24 18:32 ` Steven Rostedt
2021-03-24 18:33 ` Steven Rostedt
2021-03-24 13:04 ` [PATCH v3 07/23] trace-cmd: Define a new option for tsc2nsec conversion Tzvetomir Stoyanov (VMware)
2021-03-24 13:04 ` [PATCH v3 08/23] trace-cmd: Save information for tsc to nanoseconds conversion in trace file Tzvetomir Stoyanov (VMware)
2021-03-24 13:04 ` [PATCH v3 09/23] trace-cmd: Read information for tsc to nanoseconds conversion from " Tzvetomir Stoyanov (VMware)
2021-03-24 13:04 ` [PATCH v3 10/23] trace-cmd: Save tsc2nsec clock in trace.dat file Tzvetomir Stoyanov (VMware)
2021-03-24 13:04 ` [PATCH v3 11/23] trace-cmd: Append new options into guest trace file at the end of the tracing session Tzvetomir Stoyanov (VMware)
2021-03-24 13:04 ` [PATCH v3 12/23] trace-cmd: Remove unneeded multiply in events timestamp reading Tzvetomir Stoyanov (VMware)
2021-03-24 13:04 ` [PATCH v3 13/23] trace-cmd: Perform all timestamp corrections in a single function Tzvetomir Stoyanov (VMware)
2021-03-24 13:04 ` [PATCH v3 14/23] trace-cmd: Convert tsc timestamps to nanosecods when reading trace data from a file Tzvetomir Stoyanov (VMware)
2021-03-24 13:04 ` [PATCH v3 15/23] trace-cmd: Set order and priorities when applying timestamp corrections Tzvetomir Stoyanov (VMware)
2021-03-24 18:51 ` Steven Rostedt
2021-03-25 6:29 ` Tzvetomir Stoyanov
2021-03-24 13:04 ` [PATCH v3 16/23] trace-cmd: Add a new flag to disable any " Tzvetomir Stoyanov (VMware)
2021-03-24 14:24 ` Steven Rostedt
2021-03-24 15:20 ` Steven Rostedt
2021-03-24 13:04 ` [PATCH v3 17/23] trace-cmd: Change "--nodate" option to affect "--date" option only Tzvetomir Stoyanov (VMware)
2021-03-24 13:04 ` [PATCH v3 18/23] trace-cmd: Add new parameter "--raw-ts" to "trace-cmd report" command Tzvetomir Stoyanov (VMware)
2021-03-24 13:04 ` [PATCH v3 19/23] trace-cmd: Print times in TimeShift options as unsigned in trace-cmd dump Tzvetomir Stoyanov (VMware)
2021-03-24 15:33 ` Steven Rostedt
2021-03-24 13:04 ` [PATCH v3 20/23] trace-cmd: Use tsc clock for host-guest tracing, if available Tzvetomir Stoyanov (VMware)
2021-03-24 13:04 ` [PATCH v3 21/23] trace-cmd: Get current clock for host-guest tracing session Tzvetomir Stoyanov (VMware)
2021-03-24 21:15 ` Steven Rostedt
2021-03-25 5:13 ` Tzvetomir Stoyanov
2021-03-25 13:41 ` Steven Rostedt
2021-03-24 13:04 ` [PATCH v3 22/23] trace-cmd: Save the trace clocks in TRACECLOCK option Tzvetomir Stoyanov (VMware)
2021-03-24 21:24 ` Steven Rostedt
2021-03-25 5:35 ` Tzvetomir Stoyanov
2021-03-24 13:04 ` [PATCH v3 23/23] trace-cmd: Read at least 8 bytes trace-id option Tzvetomir Stoyanov (VMware)
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=20210324135728.3559392c@gandalf.local.home \
--to=rostedt@goodmis.org \
--cc=linux-trace-devel@vger.kernel.org \
--cc=tz.stoyanov@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 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).