Re: [PATCH v17 14/18] trace-cmd: Add host trace clock as guest trace argument

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

 



On Mon, Dec 9, 2019 at 9:31 PM Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:
>
[ ... ]
> > 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.

I use the same flag in patch 16 from the same series, with the same purpose -
to apply host config to the guest. That's why decided to call it "guest_config".

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

The guest config string is not parsed in the host context, that's why the host
doesn't know if a guest has an explicit  "-C clock" argument.
I can parse the guest config here, but this will complicate the implementation.
Using the current approach still guarantees that the user specified
config has higher
priority than injected one - add_argv() API prepends to the beginning
of the string, so
user arguments are always after the injected one. When guest parses
the string, in case of
duplicated "-C clock" arguments, the last one wins.


>
> -- 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, "*");
>

Thanks !

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



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

  Powered by Linux