linux-trace-devel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Tzvetomir Stoyanov <tz.stoyanov@gmail.com>
To: Steven Rostedt <rostedt@goodmis.org>
Cc: Linux Trace Devel <linux-trace-devel@vger.kernel.org>
Subject: Re: [PATCH v3 22/23] trace-cmd: Save the trace clocks in TRACECLOCK option
Date: Thu, 25 Mar 2021 07:35:34 +0200	[thread overview]
Message-ID: <CAPpZLN4g1o=oSK9SO6PL=QptcSfVEyytX3aSi4JXLCAt72F7rg@mail.gmail.com> (raw)
In-Reply-To: <20210324172446.611276a4@gandalf.local.home>

On Wed, Mar 24, 2021 at 11:24 PM Steven Rostedt <rostedt@goodmis.org> wrote:
>
> On Wed, 24 Mar 2021 15:04:17 +0200
> "Tzvetomir Stoyanov (VMware)" <tz.stoyanov@gmail.com> wrote:
>
> > Save the content of the trace_clock file in the TRACECLOCK option in
> > the trace.dat file. The clocks can be printed with "trace-cmd dump
> > --options" command.
> > These clocks were saved right before the tracing data in the file, but
> > this patch set changed that logic. Now only the selected clock is saved
> > in the file before the tracing data.
> > Having all supported trace clocks in the file is useful for debug
> > purposes. Adding clocks in the existing TRACECLOCK option is save and
> > will not break the older versions of trace-cmd.
> >
> > Signed-off-by: Tzvetomir Stoyanov (VMware) <tz.stoyanov@gmail.com>
> > ---
> >  tracecmd/trace-record.c | 6 +++++-
> >  1 file changed, 5 insertions(+), 1 deletion(-)
> >
> > diff --git a/tracecmd/trace-record.c b/tracecmd/trace-record.c
> > index 2fc6723a..f4c27ef1 100644
> > --- a/tracecmd/trace-record.c
> > +++ b/tracecmd/trace-record.c
> > @@ -4138,6 +4138,7 @@ enum {
> >  static void add_options(struct tracecmd_output *handle, struct common_record_context *ctx)
> >  {
> >       int type = 0;
> > +     char *clocks;
> >
> >       if (ctx->date2ts) {
> >               if (ctx->data_flags & DATA_FL_DATE)
> > @@ -4149,12 +4150,15 @@ static void add_options(struct tracecmd_output *handle, struct common_record_con
> >       if (type)
> >               tracecmd_add_option(handle, type, strlen(ctx->date2ts)+1, ctx->date2ts);
> >
> > -     tracecmd_add_option(handle, TRACECMD_OPTION_TRACECLOCK, 0, NULL);
> > +     clocks = tracefs_instance_file_read(NULL, "trace_clock", NULL);
> > +     tracecmd_add_option(handle, TRACECMD_OPTION_TRACECLOCK,
> > +                         clocks ? strlen(clocks)+1 : 0, clocks);
>
> Strange. Even after applying this patch, I still get:
>
> # ./tracecmd/trace-cmd dump
>
>  Tracing meta data in file trace.dat:
>         [Initial format]
>                 6       [Version]
>                 0       [Little endian]
>                 8       [Bytes in a long]
>                 4096    [Page size, bytes]
>         [Header page, 205 bytes]
>         [Header event, 205 bytes]
>         [Ftrace format, 15 events]
>         [Events format, 104 systems]
>         [Kallsyms, 6978379 bytes]
>         [Trace printk, 4997 bytes]
>         [Saved command lines, 1987 bytes]
>         8 [CPUs with tracing data]
>         [13 options]
>         [Flyrecord tracing data]
>         [Tracing clock]
>                  No tracing clock saved in the file
>
>
> Seems to be that it skips over the options unless you explicitly ask for it.

Going to fix it in v4. The way it should work:
 1. "trace-cmd dump" && "trace-cmd dump --clock": [Tracing clock] -
dump the clock written just before the tracing data. This clock is
valid only if there is a TRACECLOCK option in the file. Here is prints
"No tracing clock saved in the file" because options are not parsed
and TRACECLOCK is not detected, going to fix this. This should be the
first user specified clock with "-C ..." option, or the clock of the
first trace instance.
 2. "trace-cmd dump --options" - dump the content of the TRACECLOCK
option, all clocks from "trace_clock" of the top instance, during the
trace session. The selected clock here could be different from the one
in the previous point, if the top instance is not used in the tracing.
The idea is to have all supported clocks here, the selected one is
written before the tracing data - that way the old trace-cmd logic
will still work.

>
> -- Steve
>
> >       add_option_hooks(handle);
> >       add_uname(handle);
> >       add_version(handle);
> >       if (!no_top_instance())
> >               add_trace_id(handle, &top_instance);
> > +     free(clocks);
> >  }
> >
> >  static void write_guest_file(struct buffer_instance *instance)
>


-- 
Tzvetomir (Ceco) Stoyanov
VMware Open Source Technology Center

  reply	other threads:[~2021-03-25  5:36 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
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 [this message]
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='CAPpZLN4g1o=oSK9SO6PL=QptcSfVEyytX3aSi4JXLCAt72F7rg@mail.gmail.com' \
    --to=tz.stoyanov@gmail.com \
    --cc=linux-trace-devel@vger.kernel.org \
    --cc=rostedt@goodmis.org \
    /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).