mirror of
https://github.com/torvalds/linux.git
synced 2024-12-01 16:41:39 +00:00
perf probe: Uncomment and export synthesize_perf_probe_point()
Uncomment and export synthesize_perf_probe_point() which had once introduced but has been disabled for a long time. This renews the code and re-enable it. Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org> Cc: Ananth N Mavinakayanahalli <ananth@linux.vnet.ibm.com> Cc: Brendan Gregg <brendan.d.gregg@gmail.com> Cc: Hemant Kumar <hemant@linux.vnet.ibm.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Link: http://lkml.kernel.org/r/20160608092949.3116.21958.stgit@devbox Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
0542bb9c8d
commit
c4ff49209b
@ -67,7 +67,6 @@ int e_snprintf(char *str, size_t size, const char *format, ...)
|
||||
return ret;
|
||||
}
|
||||
|
||||
static char *synthesize_perf_probe_point(struct perf_probe_point *pp);
|
||||
static struct machine *host_machine;
|
||||
|
||||
/* Initialize symbol maps and path of vmlinux/modules */
|
||||
@ -1716,7 +1715,7 @@ out:
|
||||
}
|
||||
|
||||
/* Compose only probe point (not argument) */
|
||||
static char *synthesize_perf_probe_point(struct perf_probe_point *pp)
|
||||
char *synthesize_perf_probe_point(struct perf_probe_point *pp)
|
||||
{
|
||||
struct strbuf buf;
|
||||
char *tmp, *ret = NULL;
|
||||
@ -1755,30 +1754,36 @@ out:
|
||||
return ret;
|
||||
}
|
||||
|
||||
#if 0
|
||||
char *synthesize_perf_probe_command(struct perf_probe_event *pev)
|
||||
{
|
||||
char *buf;
|
||||
int i, len, ret;
|
||||
struct strbuf buf;
|
||||
char *tmp, *ret = NULL;
|
||||
int i;
|
||||
|
||||
buf = synthesize_perf_probe_point(&pev->point);
|
||||
if (!buf)
|
||||
if (strbuf_init(&buf, 64))
|
||||
return NULL;
|
||||
if (pev->event)
|
||||
if (strbuf_addf(&buf, "%s:%s=", pev->group ?: PERFPROBE_GROUP,
|
||||
pev->event) < 0)
|
||||
goto out;
|
||||
|
||||
tmp = synthesize_perf_probe_point(&pev->point);
|
||||
if (!tmp || strbuf_addstr(&buf, tmp) < 0)
|
||||
goto out;
|
||||
free(tmp);
|
||||
|
||||
len = strlen(buf);
|
||||
for (i = 0; i < pev->nargs; i++) {
|
||||
ret = e_snprintf(&buf[len], MAX_CMDLEN - len, " %s",
|
||||
pev->args[i].name);
|
||||
if (ret <= 0) {
|
||||
free(buf);
|
||||
return NULL;
|
||||
}
|
||||
len += ret;
|
||||
tmp = synthesize_perf_probe_arg(pev->args + i);
|
||||
if (!tmp || strbuf_addf(&buf, " %s", tmp) < 0)
|
||||
goto out;
|
||||
free(tmp);
|
||||
}
|
||||
|
||||
return buf;
|
||||
ret = strbuf_detach(&buf, NULL);
|
||||
out:
|
||||
strbuf_release(&buf);
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
|
||||
static int __synthesize_probe_trace_arg_ref(struct probe_trace_arg_ref *ref,
|
||||
struct strbuf *buf, int depth)
|
||||
|
@ -121,6 +121,7 @@ int parse_probe_trace_command(const char *cmd, struct probe_trace_event *tev);
|
||||
char *synthesize_perf_probe_command(struct perf_probe_event *pev);
|
||||
char *synthesize_probe_trace_command(struct probe_trace_event *tev);
|
||||
char *synthesize_perf_probe_arg(struct perf_probe_arg *pa);
|
||||
char *synthesize_perf_probe_point(struct perf_probe_point *pp);
|
||||
|
||||
int perf_probe_event__copy(struct perf_probe_event *dst,
|
||||
struct perf_probe_event *src);
|
||||
|
Loading…
Reference in New Issue
Block a user