perf evsel: Fall back to global 'perf_env' in perf_evsel__env()

I.e. if evsel->evlist or evsel->evlist->env isn't set, return the
environment for the running machine, as that would be set if reading
from a perf.data file.

Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Link: https://lkml.kernel.org/n/tip-uqq4grmhbi12rwb0lfpo6lfu@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
Arnaldo Carvalho de Melo 2019-09-30 11:48:32 -03:00
parent f67001a4a0
commit 9db0e3635f
2 changed files with 8 additions and 1 deletions

View File

@ -30,6 +30,7 @@
#include "counts.h"
#include "event.h"
#include "evsel.h"
#include "util/env.h"
#include "util/evsel_config.h"
#include "util/evsel_fprintf.h"
#include "evlist.h"
@ -2512,7 +2513,7 @@ struct perf_env *perf_evsel__env(struct evsel *evsel)
{
if (evsel && evsel->evlist)
return evsel->evlist->env;
return NULL;
return &perf_env;
}
static int store_evsel_ids(struct evsel *evsel, struct evlist *evlist)

View File

@ -14,6 +14,7 @@
#include "thread_map.h"
#include "trace-event.h"
#include "mmap.h"
#include "util/env.h"
#include <internal/lib.h>
#include "../perf-sys.h"
@ -53,6 +54,11 @@ int parse_callchain_record(const char *arg __maybe_unused,
return 0;
}
/*
* Add this one here not to drag util/env.c
*/
struct perf_env perf_env;
/*
* Support debug printing even though util/debug.c is not linked. That means
* implementing 'verbose' and 'eprintf'.