Skip to content

Commit 69ac747

Browse files
captain5050namhyung
authored andcommitted
perf auxtrace: Pass perf_env from session through to mmap read
auxtrace_mmap__read and auxtrace_mmap__read_snapshot end up calling `evsel__env(NULL)` which returns the global perf_env variable for the host. Their only call is in perf record. Rather than use the global variable pass through the perf_env for `perf record`. Signed-off-by: Ian Rogers <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Namhyung Kim <[email protected]>
1 parent e481066 commit 69ac747

File tree

3 files changed

+17
-10
lines changed

3 files changed

+17
-10
lines changed

tools/perf/builtin-record.c

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -775,7 +775,9 @@ static int record__auxtrace_mmap_read(struct record *rec,
775775
{
776776
int ret;
777777

778-
ret = auxtrace_mmap__read(map, rec->itr, &rec->tool,
778+
ret = auxtrace_mmap__read(map, rec->itr,
779+
perf_session__env(rec->session),
780+
&rec->tool,
779781
record__process_auxtrace);
780782
if (ret < 0)
781783
return ret;
@@ -791,7 +793,9 @@ static int record__auxtrace_mmap_read_snapshot(struct record *rec,
791793
{
792794
int ret;
793795

794-
ret = auxtrace_mmap__read_snapshot(map, rec->itr, &rec->tool,
796+
ret = auxtrace_mmap__read_snapshot(map, rec->itr,
797+
perf_session__env(rec->session),
798+
&rec->tool,
795799
record__process_auxtrace,
796800
rec->opts.auxtrace_snapshot_size);
797801
if (ret < 0)

tools/perf/util/auxtrace.c

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1890,7 +1890,7 @@ int __weak compat_auxtrace_mmap__write_tail(struct auxtrace_mmap *mm, u64 tail)
18901890
}
18911891

18921892
static int __auxtrace_mmap__read(struct mmap *map,
1893-
struct auxtrace_record *itr,
1893+
struct auxtrace_record *itr, struct perf_env *env,
18941894
const struct perf_tool *tool, process_auxtrace_t fn,
18951895
bool snapshot, size_t snapshot_size)
18961896
{
@@ -1900,7 +1900,7 @@ static int __auxtrace_mmap__read(struct mmap *map,
19001900
size_t size, head_off, old_off, len1, len2, padding;
19011901
union perf_event ev;
19021902
void *data1, *data2;
1903-
int kernel_is_64_bit = perf_env__kernel_is_64_bit(evsel__env(NULL));
1903+
int kernel_is_64_bit = perf_env__kernel_is_64_bit(env);
19041904

19051905
head = auxtrace_mmap__read_head(mm, kernel_is_64_bit);
19061906

@@ -2002,17 +2002,18 @@ static int __auxtrace_mmap__read(struct mmap *map,
20022002
}
20032003

20042004
int auxtrace_mmap__read(struct mmap *map, struct auxtrace_record *itr,
2005-
const struct perf_tool *tool, process_auxtrace_t fn)
2005+
struct perf_env *env, const struct perf_tool *tool,
2006+
process_auxtrace_t fn)
20062007
{
2007-
return __auxtrace_mmap__read(map, itr, tool, fn, false, 0);
2008+
return __auxtrace_mmap__read(map, itr, env, tool, fn, false, 0);
20082009
}
20092010

20102011
int auxtrace_mmap__read_snapshot(struct mmap *map,
2011-
struct auxtrace_record *itr,
2012+
struct auxtrace_record *itr, struct perf_env *env,
20122013
const struct perf_tool *tool, process_auxtrace_t fn,
20132014
size_t snapshot_size)
20142015
{
2015-
return __auxtrace_mmap__read(map, itr, tool, fn, true, snapshot_size);
2016+
return __auxtrace_mmap__read(map, itr, env, tool, fn, true, snapshot_size);
20162017
}
20172018

20182019
/**

tools/perf/util/auxtrace.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ union perf_event;
2323
struct perf_session;
2424
struct evlist;
2525
struct evsel;
26+
struct perf_env;
2627
struct perf_tool;
2728
struct mmap;
2829
struct perf_sample;
@@ -512,10 +513,11 @@ typedef int (*process_auxtrace_t)(const struct perf_tool *tool,
512513
size_t len1, void *data2, size_t len2);
513514

514515
int auxtrace_mmap__read(struct mmap *map, struct auxtrace_record *itr,
515-
const struct perf_tool *tool, process_auxtrace_t fn);
516+
struct perf_env *env, const struct perf_tool *tool,
517+
process_auxtrace_t fn);
516518

517519
int auxtrace_mmap__read_snapshot(struct mmap *map,
518-
struct auxtrace_record *itr,
520+
struct auxtrace_record *itr, struct perf_env *env,
519521
const struct perf_tool *tool, process_auxtrace_t fn,
520522
size_t snapshot_size);
521523

0 commit comments

Comments
 (0)