diff mbox series

[6/6] trace-cmd record: Add new parameter --file-version

Message ID 20210422071718.483383-7-tz.stoyanov@gmail.com (mailing list archive)
State Superseded
Headers show
Series Bump trace file version | expand

Commit Message

Tzvetomir Stoyanov (VMware) April 22, 2021, 7:17 a.m. UTC
Added a new optional parameter to "trace-cmd record", can be used to
select the desired file version of the trace output file.

Signed-off-by: Tzvetomir Stoyanov (VMware) <tz.stoyanov@gmail.com>
---
 tracecmd/trace-record.c | 23 ++++++++++++++++++-----
 tracecmd/trace-usage.c  |  1 +
 2 files changed, 19 insertions(+), 5 deletions(-)

Comments

Steven Rostedt April 29, 2021, 1:26 a.m. UTC | #1
On Thu, 22 Apr 2021 10:17:18 +0300
"Tzvetomir Stoyanov (VMware)" <tz.stoyanov@gmail.com> wrote:

> Added a new optional parameter to "trace-cmd record", can be used to
> select the desired file version of the trace output file.
> 
> Signed-off-by: Tzvetomir Stoyanov (VMware) <tz.stoyanov@gmail.com>

Even with this last patch, I still get:

trace-input.c: In function ‘tracecmd_get_file_version’:
trace-input.c:4033:15: error: ‘struct tracecmd_input’ has no member named ‘file_version’
 4033 |  return handle->file_version;
      |               ^~
trace-input.c:4034:1: warning: control reaches end of non-void function [-Wreturn-type]
 4034 | }

So you must have added a change without somehow committing it :-/

-- Steve
Tzvetomir Stoyanov (VMware) April 29, 2021, 3:34 a.m. UTC | #2
On Thu, Apr 29, 2021 at 4:26 AM Steven Rostedt <rostedt@goodmis.org> wrote:
>
> On Thu, 22 Apr 2021 10:17:18 +0300
> "Tzvetomir Stoyanov (VMware)" <tz.stoyanov@gmail.com> wrote:
>
> > Added a new optional parameter to "trace-cmd record", can be used to
> > select the desired file version of the trace output file.
> >
> > Signed-off-by: Tzvetomir Stoyanov (VMware) <tz.stoyanov@gmail.com>
>
> Even with this last patch, I still get:
>
> trace-input.c: In function ‘tracecmd_get_file_version’:
> trace-input.c:4033:15: error: ‘struct tracecmd_input’ has no member named ‘file_version’
>  4033 |  return handle->file_version;
>       |               ^~
> trace-input.c:4034:1: warning: control reaches end of non-void function [-Wreturn-type]
>  4034 | }
>
> So you must have added a change without somehow committing it :-/

The confusion is from another dependency - the "[PATCH 0/6] Bump trace
file version" patchset depends on "[PATCH v2] trace-cmd: Check if file
version is supported". I wrote that in the cover letter, but maybe
that patch should be part of the set as well. I'll send the v2 of the
"Bump trace file version" with this additional patch. Strange, I do
not see that patchset in patchwork, only in the mailing list.




>
> -- Steve
Steven Rostedt April 29, 2021, 12:55 p.m. UTC | #3
On Thu, 29 Apr 2021 06:34:14 +0300
Tzvetomir Stoyanov <tz.stoyanov@gmail.com> wrote:

> On Thu, Apr 29, 2021 at 4:26 AM Steven Rostedt <rostedt@goodmis.org> wrote:
> >
> > On Thu, 22 Apr 2021 10:17:18 +0300
> > "Tzvetomir Stoyanov (VMware)" <tz.stoyanov@gmail.com> wrote:
> >  
> > > Added a new optional parameter to "trace-cmd record", can be used to
> > > select the desired file version of the trace output file.
> > >
> > > Signed-off-by: Tzvetomir Stoyanov (VMware) <tz.stoyanov@gmail.com>  
> >
> > Even with this last patch, I still get:
> >
> > trace-input.c: In function ‘tracecmd_get_file_version’:
> > trace-input.c:4033:15: error: ‘struct tracecmd_input’ has no member named ‘file_version’
> >  4033 |  return handle->file_version;
> >       |               ^~
> > trace-input.c:4034:1: warning: control reaches end of non-void function [-Wreturn-type]
> >  4034 | }
> >
> > So you must have added a change without somehow committing it :-/  
> 
> The confusion is from another dependency - the "[PATCH 0/6] Bump trace
> file version" patchset depends on "[PATCH v2] trace-cmd: Check if file
> version is supported". I wrote that in the cover letter, but maybe

Ah, I didn't read the cover letter, and just pulled the patches directly
from patchwork. I missed the v2 in patch work as well. 

My fault, I should have read the cover letter, but knowing what it was from
conversations I didn't look at it. And because I didn't see the patch that
it depended on in patchwork (it was hidden between Yordan's and my patch) I
didn't think it would have any dependencies, which is where I was confused.

> that patch should be part of the set as well. I'll send the v2 of the
> "Bump trace file version" with this additional patch. Strange, I do
> not see that patchset in patchwork, only in the mailing list.
> 

Yeah, I marked the series as "change requested" which hides it from the
normal view.

-- Steve
diff mbox series

Patch

diff --git a/tracecmd/trace-record.c b/tracecmd/trace-record.c
index 6775338b..f95db0e4 100644
--- a/tracecmd/trace-record.c
+++ b/tracecmd/trace-record.c
@@ -199,6 +199,7 @@  struct common_record_context {
 	char *date2ts;
 	char *user;
 	const char *clock;
+	unsigned long file_version;
 	struct tsc_nsec tsc2nsec;
 	int data_flags;
 	int tsync_loop_interval;
@@ -3645,7 +3646,8 @@  setup_connection(struct buffer_instance *instance, struct common_record_context
 
 	/* Now create the handle through this socket */
 	if (msg_handle->version == V3_PROTOCOL) {
-		network_handle = tracecmd_create_init_fd_msg(msg_handle, listed_events, 0);
+		network_handle = tracecmd_create_init_fd_msg(msg_handle, listed_events,
+							     ctx->file_version);
 		if (!network_handle)
 			goto error;
 		tracecmd_set_quiet(network_handle, quiet);
@@ -3663,7 +3665,8 @@  setup_connection(struct buffer_instance *instance, struct common_record_context
 		if (ret)
 			goto error;
 	} else {
-		network_handle = tracecmd_create_init_fd_glob(msg_handle->fd, listed_events, 0);
+		network_handle = tracecmd_create_init_fd_glob(msg_handle->fd, listed_events,
+							      ctx->file_version);
 		if (!network_handle)
 			goto error;
 		tracecmd_set_quiet(network_handle, quiet);
@@ -3850,7 +3853,8 @@  static void setup_agent(struct buffer_instance *instance,
 {
 	struct tracecmd_output *network_handle;
 
-	network_handle = tracecmd_create_init_fd_msg(instance->msg_handle, listed_events, 0);
+	network_handle = tracecmd_create_init_fd_msg(instance->msg_handle, listed_events,
+						     ctx->file_version);
 	add_options(network_handle, ctx);
 	tracecmd_write_cmdlines(network_handle);
 	tracecmd_write_cpus(network_handle, instance->cpu_count);
@@ -4242,7 +4246,8 @@  static void record_data(struct common_record_context *ctx)
 		return;
 
 	if (latency) {
-		handle = tracecmd_create_file_latency(ctx->output, local_cpu_count, 0);
+		handle = tracecmd_create_file_latency(ctx->output, local_cpu_count,
+						      ctx->file_version);
 		tracecmd_set_quiet(handle, quiet);
 	} else {
 		if (!local_cpu_count)
@@ -4273,7 +4278,8 @@  static void record_data(struct common_record_context *ctx)
 				touch_file(temp_files[i]);
 		}
 
-		handle = tracecmd_create_init_file_glob(ctx->output, listed_events, 0);
+		handle = tracecmd_create_init_file_glob(ctx->output, listed_events,
+							ctx->file_version);
 		if (!handle)
 			die("Error creating output file");
 		tracecmd_set_quiet(handle, quiet);
@@ -5499,6 +5505,7 @@  void init_top_instance(void)
 }
 
 enum {
+	OPT_file_version	= 239,
 	OPT_tsc2nsec		= 240,
 	OPT_fork		= 241,
 	OPT_tsyncinterval	= 242,
@@ -5933,6 +5940,7 @@  static void parse_record_options(int argc,
 			{"tsync-interval", required_argument, NULL, OPT_tsyncinterval},
 			{"fork", no_argument, NULL, OPT_fork},
 			{"tsc2nsec", no_argument, NULL, OPT_tsc2nsec},
+			{"file-version", required_argument, NULL, OPT_file_version},
 			{NULL, 0, NULL, 0}
 		};
 
@@ -6354,6 +6362,11 @@  static void parse_record_options(int argc,
 				die("TSC to nanosecond is not supported");
 			ctx->instance->flags |= BUFFER_FL_TSC2NSEC;
 			break;
+		case OPT_file_version:
+			ctx->file_version = atoi(optarg);
+			if (!tracecmd_is_version_supported(ctx->file_version))
+				die("File version %d is not supported", ctx->file_version);
+			break;
 		case OPT_quiet:
 		case 'q':
 			quiet = true;
diff --git a/tracecmd/trace-usage.c b/tracecmd/trace-usage.c
index 98247074..e5b54114 100644
--- a/tracecmd/trace-usage.c
+++ b/tracecmd/trace-usage.c
@@ -68,6 +68,7 @@  static struct usage_help usage_help[] = {
 		"               If a negative number is specified, timestamps synchronization is disabled"
 		"               If 0 is specified, no loop is performed - timestamps offset is calculated only twice,"
 		"                                                         at the beginnig and at the end of the trace\n"
+		"          --file-version select the desired version of the trace output file\n"
 	},
 	{
 		"set",