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

From: Arnaldo Carvalho de Melo
Date: Thu Feb 04 2021 - 07:59:08 EST


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

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?

- Arnaldo