mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
perf tools: Handle PERF_RECORD_KSYMBOL
This patch handles PERF_RECORD_KSYMBOL in perf record/report.
Specifically, map and symbol are created for ksymbol register, and
removed for ksymbol unregister.
This patch also sets perf_event_attr.ksymbol properly. The flag is ON by
default.
Committer notes:
Use proper inttypes.h for u64, fixing the build in some environments
like in the android NDK r15c targetting ARM 32-bit.
I.e. fixing this build error:
util/event.c: In function 'perf_event__fprintf_ksymbol':
util/event.c:1489:10: error: format '%lx' expects argument of type 'long unsigned int', but argument 3 has type 'u64' [-Werror=format=]
event->ksymbol_event.flags, event->ksymbol_event.name);
^
cc1: all warnings being treated as errors
Signed-off-by: Song Liu <songliubraving@fb.com>
Reviewed-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Alexei Starovoitov <ast@kernel.org>
Cc: Daniel Borkmann <daniel@iogearbox.net>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: kernel-team@fb.com
Cc: netdev@vger.kernel.org
Link: http://lkml.kernel.org/r/20190117161521.1341602-6-songliubraving@fb.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
committed by
Arnaldo Carvalho de Melo
parent
df063c83aa
commit
9aa0bfa370
@@ -379,6 +379,8 @@ void perf_tool__fill_defaults(struct perf_tool *tool)
|
||||
tool->itrace_start = perf_event__process_itrace_start;
|
||||
if (tool->context_switch == NULL)
|
||||
tool->context_switch = perf_event__process_switch;
|
||||
if (tool->ksymbol == NULL)
|
||||
tool->ksymbol = perf_event__process_ksymbol;
|
||||
if (tool->read == NULL)
|
||||
tool->read = process_event_sample_stub;
|
||||
if (tool->throttle == NULL)
|
||||
@@ -1310,6 +1312,8 @@ static int machines__deliver_event(struct machines *machines,
|
||||
case PERF_RECORD_SWITCH:
|
||||
case PERF_RECORD_SWITCH_CPU_WIDE:
|
||||
return tool->context_switch(tool, event, sample, machine);
|
||||
case PERF_RECORD_KSYMBOL:
|
||||
return tool->ksymbol(tool, event, sample, machine);
|
||||
default:
|
||||
++evlist->stats.nr_unknown_events;
|
||||
return -1;
|
||||
|
||||
Reference in New Issue
Block a user