mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-16 05:26:07 +00:00
perf script: Move script_fetch_insn to trace-event-scripting.c
Add native_arch as a parameter to script_fetch_insn rather than relying on the builtin-script value that won't be initialized for the dlfilter and python Context use cases. Assume both of those cases are running natively. Signed-off-by: Ian Rogers <irogers@google.com> Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com> Acked-by: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Andi Kleen <ak@linux.intel.com> Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com> Cc: Colin Ian King <colin.i.king@gmail.com> Cc: Dapeng Mi <dapeng1.mi@linux.intel.com> Cc: Howard Chu <howardchu95@gmail.com> Cc: Ilya Leoshkevich <iii@linux.ibm.com> Cc: Ingo Molnar <mingo@redhat.com> Cc: James Clark <james.clark@linaro.org> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Josh Poimboeuf <jpoimboe@redhat.com> Cc: Kan Liang <kan.liang@linux.intel.com> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Michael Petlan <mpetlan@redhat.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Richter <tmricht@linux.ibm.com> Cc: Veronika Molnarova <vmolnaro@redhat.com> Cc: Weilin Wang <weilin.wang@intel.com> Link: https://lore.kernel.org/r/20241119011644.971342-11-irogers@google.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
04051b4a93
commit
1ff2ca39b3
@ -1586,19 +1586,6 @@ static int perf_sample__fprintf_callindent(struct perf_sample *sample,
|
||||
return len + dlen;
|
||||
}
|
||||
|
||||
__weak void arch_fetch_insn(struct perf_sample *sample __maybe_unused,
|
||||
struct thread *thread __maybe_unused,
|
||||
struct machine *machine __maybe_unused)
|
||||
{
|
||||
}
|
||||
|
||||
void script_fetch_insn(struct perf_sample *sample, struct thread *thread,
|
||||
struct machine *machine)
|
||||
{
|
||||
if (sample->insn_len == 0 && native_arch)
|
||||
arch_fetch_insn(sample, thread, machine);
|
||||
}
|
||||
|
||||
static int perf_sample__fprintf_insn(struct perf_sample *sample,
|
||||
struct evsel *evsel,
|
||||
struct perf_event_attr *attr,
|
||||
@ -1608,7 +1595,7 @@ static int perf_sample__fprintf_insn(struct perf_sample *sample,
|
||||
{
|
||||
int printed = 0;
|
||||
|
||||
script_fetch_insn(sample, thread, machine);
|
||||
script_fetch_insn(sample, thread, machine, native_arch);
|
||||
|
||||
if (PRINT_FIELD(INSNLEN))
|
||||
printed += fprintf(fp, " ilen: %d", sample->insn_len);
|
||||
|
@ -93,7 +93,7 @@ static PyObject *perf_sample_insn(PyObject *obj, PyObject *args)
|
||||
if (c->sample->ip && !c->sample->insn_len && thread__maps(c->al->thread)) {
|
||||
struct machine *machine = maps__machine(thread__maps(c->al->thread));
|
||||
|
||||
script_fetch_insn(c->sample, c->al->thread, machine);
|
||||
script_fetch_insn(c->sample, c->al->thread, machine, /*native_arch=*/true);
|
||||
}
|
||||
if (!c->sample->insn_len)
|
||||
Py_RETURN_NONE; /* N.B. This is a return statement */
|
||||
|
@ -234,7 +234,8 @@ static const __u8 *dlfilter__insn(void *ctx, __u32 *len)
|
||||
struct machine *machine = maps__machine(thread__maps(al->thread));
|
||||
|
||||
if (machine)
|
||||
script_fetch_insn(d->sample, al->thread, machine);
|
||||
script_fetch_insn(d->sample, al->thread, machine,
|
||||
/*native_arch=*/true);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1317,12 +1317,6 @@ struct kwork_work *perf_kwork_add_work(struct perf_kwork *kwork __maybe_unused,
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void script_fetch_insn(struct perf_sample *sample __maybe_unused,
|
||||
struct thread *thread __maybe_unused,
|
||||
struct machine *machine __maybe_unused)
|
||||
{
|
||||
}
|
||||
|
||||
int perf_sample__sprintf_flags(u32 flags __maybe_unused, char *str __maybe_unused,
|
||||
size_t sz __maybe_unused)
|
||||
{
|
||||
|
@ -13,6 +13,7 @@
|
||||
#include <event-parse.h>
|
||||
#endif
|
||||
|
||||
#include "archinsn.h"
|
||||
#include "debug.h"
|
||||
#include "trace-event.h"
|
||||
#include "evsel.h"
|
||||
@ -271,3 +272,16 @@ void setup_perl_scripting(void)
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
__weak void arch_fetch_insn(struct perf_sample *sample __maybe_unused,
|
||||
struct thread *thread __maybe_unused,
|
||||
struct machine *machine __maybe_unused)
|
||||
{
|
||||
}
|
||||
|
||||
void script_fetch_insn(struct perf_sample *sample, struct thread *thread,
|
||||
struct machine *machine, bool native_arch)
|
||||
{
|
||||
if (sample->insn_len == 0 && native_arch)
|
||||
arch_fetch_insn(sample, thread, machine);
|
||||
}
|
||||
|
@ -117,7 +117,7 @@ struct scripting_ops *script_spec__lookup(const char *spec);
|
||||
int script_spec__for_each(int (*cb)(struct scripting_ops *ops, const char *spec));
|
||||
|
||||
void script_fetch_insn(struct perf_sample *sample, struct thread *thread,
|
||||
struct machine *machine);
|
||||
struct machine *machine, bool native_arch);
|
||||
|
||||
void setup_perl_scripting(void);
|
||||
void setup_python_scripting(void);
|
||||
|
Loading…
x
Reference in New Issue
Block a user