Re: [PATCH 06/24] perf daemon: Add config file support

From: Jiri Olsa
Date: Thu Feb 04 2021 - 11:22:09 EST


On Thu, Feb 04, 2021 at 09:58:19AM -0300, Arnaldo Carvalho de Melo wrote:
> Em Thu, Feb 04, 2021 at 09:42:35PM +0900, Namhyung Kim escreveu:
> > Hi Jiri,
> >
> > On Sun, Jan 31, 2021 at 8:49 AM Jiri Olsa <jolsa@xxxxxxxxxx> wrote:
> > [SNIP]
> > > +#define SESSION_OUTPUT "output"
> > > +
> > > +/*
> > > + * Session states:
> > > + *
> > > + * OK - session is up and running
> > > + * RECONFIG - session is pending for reconfiguration,
> > > + * new values are already loaded in session object
> > > + * KILL - session is pending to be killed
> > > + *
> > > + * Session object life and its state is maintained by
> > > + * following functions:
> > > + *
> > > + * setup_server_config
> > > + * - reads config file and setup session objects
> > > + * with following states:
> > > + *
> > > + * OK - no change needed
> > > + * RECONFIG - session needs to be changed
> > > + * (run variable changed)
> > > + * KILL - session needs to be killed
> > > + * (session is no longer in config file)
> > > + *
> > > + * daemon__reconfig
> > > + * - scans session objects and does following actions
> > > + * for states:
> > > + *
> > > + * OK - skip
> > > + * RECONFIG - session is killed and re-run with new config
> > > + * KILL - session is killed
> > > + *
> > > + * - all sessions have OK state on the function exit
> > > + */
> > > +enum session_state {
> > > + SESSION_STATE__OK,
> > > + SESSION_STATE__RECONFIG,
> > > + SESSION_STATE__KILL,
> > > +};
> > > +
> > > +struct session {
> > > + char *base;
> > > + char *name;
> > > + char *run;
> > > + int pid;
> > > + struct list_head list;
> > > + enum session_state state;
> > > +};
> >
> > Although I think calling it 'session' is intuitive, it's also confusing
> > as we already have struct perf_session...

ok, how about daemon_session then?

>
> Maybe 'struct server_session' ? If this ends up in tools/lib/perf, then
> it gets renamed to 'struct perf_server_session', just like we have
> 'struct perf_evsel' in libperf and 'struct evsel' in tools/perf/, right?

let's have our grand-grand-grandkids worry about that ;-)

thanks,
jirka