Re: [PATCH v3 22/23] trace-cmd: Save the trace clocks in TRACECLOCK option

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 24 Mar 2021 15:04:17 +0200
"Tzvetomir Stoyanov (VMware)" <tz.stoyanov@xxxxxxxxx> 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@xxxxxxxxx>
> ---
>  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.

-- 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)




[Index of Archives]     [Linux USB Development]     [Linux USB Development]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux