perf config: Call perf_config__init() lazily
tip-bot for Arnaldo Carvalho de Melo
merge botCommit-ID: d01bd1ac920e98e2a64f6bb5adf907180e0aaac7 Gitweb: https://git.kernel.org/tip/d01bd1ac920e98e2a64f6bb5adf907180e0aaac7 Author: Arnaldo Carvalho de Melo <[email protected]> AuthorDate: Wed, 16 May 2018 16:09:08 -0300 Committer: Arnaldo Carvalho de Melo <[email protected]> CommitDate: Wed, 16 May 2018 16:11:09 -0300
perf config: Call perf_config__init() lazily
We check what perf_config__init() does at each perf_config() call, namely if the static perf_config instance was created, so instead of bailing out in that case, try to allocate it, bailing if it fails.
Now to get the perf_config() call out of the start of perf's main() function, doing it also lazily.
Cc Adrian Hunter <[email protected]>
Cc David Ahern <[email protected]>
Cc Jiri Olsa <[email protected]>
Cc Namhyung Kim <[email protected]>
Cc Taeung Song <[email protected]>
Cc Wang Nan <[email protected]>
Signed-off-by Arnaldo Carvalho de Melo <[email protected]>
--- tools/perf/perf.c | 1 - tools/perf/util/config.c | 16 +++++++++------- tools/perf/util/config.h | 1 - 3 files changed, 9 insertions(+), 9 deletions(-)
tools/perf/perf.c +0 -1
@@ -458,7 +458,6 @@ int main(int argc, const char **argv)srandom (time (NULL )); -perf_config__init (); err =perf_config (perf_default_config,NULL );if (err)return err;
tools/perf/util/config.c +9 -7
@@ -707,6 +707,14 @@ struct perf_config_set *perf_config_set__new(void)return set; } +static int perf_config__init (void ) +{ +if (config_set ==NULL ) + config_set =perf_config_set__new (); + +return config_set ==NULL ; +} +int perf_config (config_fn_t fn,void *data) {int ret =0 ;
@@ -714,7 +722,7 @@ int perf_config(config_fn_t fn, void *data)struct perf_config_section *section;struct perf_config_item *item; -if (config_set ==NULL ) +if (config_set ==NULL &&perf_config__init ())return -1 ;perf_config_set__for_each_entry (config_set, section, item) {
@@ -735,12 +743,6 @@ int perf_config(config_fn_t fn, void *data)return ret; } -void perf_config__init (void ) -{ -if (config_set ==NULL ) - config_set =perf_config_set__new (); -} -void perf_config__exit (void ) {perf_config_set__delete (config_set);
tools/perf/util/config.h +0 -1
@@ -38,7 +38,6 @@ struct perf_config_set *perf_config_set__new(void);void perf_config_set__delete (struct perf_config_set *set);int perf_config_set__collect (struct perf_config_set *set,const char *file_name,const char *var,const char *value); -void perf_config__init (void );void perf_config__exit (void );void perf_config__refresh (void );