On Tue, 3 Dec 2019 12:35:18 +0200 "Tzvetomir Stoyanov (VMware)" <tz.stoyanov@xxxxxxxxx> wrote: > When tracing host and guest machines, both should use the same > tracing clock for event timestamps. If a clock is specified > as host tracing argument, with option "-C clock_name", the same > is injected as guest tracing argument. If the user wants to use > different tracing clocks, it can specify it using "-C clock_name" > as guest tracing argument. In that case, the one specified by > the user has higher priority. > > Signed-off-by: Tzvetomir Stoyanov (VMware) <tz.stoyanov@xxxxxxxxx> > --- > tracecmd/trace-record.c | 19 +++++++++++++++++-- > 1 file changed, 17 insertions(+), 2 deletions(-) > > diff --git a/tracecmd/trace-record.c b/tracecmd/trace-record.c > index 49730d6..e7fb1bd 100644 > --- a/tracecmd/trace-record.c > +++ b/tracecmd/trace-record.c > @@ -5405,6 +5405,8 @@ static void parse_record_options(int argc, > char *sav; > int name_counter = 0; > int neg_event = 0; > + struct buffer_instance *instance; > + bool guest_config = false; Should have a different name, like "clock_set", as "guest_config" doesn't let us know what this is about. > > init_common_record_context(ctx, curr_cmd); > > @@ -5562,6 +5564,7 @@ static void parse_record_options(int argc, > break; > case 'C': > ctx->instance->ftrace->clock = optarg; > + guest_config = true; > break; > case 'v': > neg_event = 1; > @@ -5779,14 +5782,26 @@ static void parse_record_options(int argc, > > /* If --date is specified, prepend it to all guest VM flags */ > if (ctx->date) { > - struct buffer_instance *instance; > - > for_all_instances(instance) { > if (is_guest(instance)) > add_argv(instance, "--date", true); > } > } > > + if (guest_config) { > + /* If -C is specified, prepend clock to all guest VM flags */ > + for_all_instances(instance) { > + if (top_instance.ftrace->clock) { > + if (is_guest(instance)) { We should only append this, if the guest didn't have a clock set already. As the change log seems to say, if the user states a "-C clock" for the guest, that should take precedence over the host clock set. That is, a user may specifically state that they are using a different clock. If we have frequency and offset set, it should still work with different clocks. -- Steve > + add_argv(instance, > + (char *)top_instance.ftrace->clock, > + true); > + add_argv(instance, "-C", true); > + } > + } > + } > + } > + > if (!ctx->filtered && ctx->instance->filter_mod) > add_func(&ctx->instance->filter_funcs, > ctx->instance->filter_mod, "*");
![]() |