Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1423295 > unrolled thread
| Started by | Arnaldo Carvalho de Melo <acme@kernel.org> |
|---|---|
| First post | 2016-06-15 20:20 +0200 |
| Last post | 2016-06-16 10:30 +0200 |
| Articles | 11 — 3 participants |
Back to article view | Back to linux.kernel
[GIT PULL 00/19] perf/core improvements and fixes Arnaldo Carvalho de Melo <acme@kernel.org> - 2016-06-15 20:20 +0200
[PATCH 01/19] perf config: Handle NULL at perf_config_set__delete() Arnaldo Carvalho de Melo <acme@kernel.org> - 2016-06-15 20:20 +0200
[PATCH 09/19] perf tools: Fix Data Object sort entry width index Arnaldo Carvalho de Melo <acme@kernel.org> - 2016-06-15 20:20 +0200
[PATCH 06/19] perf probe: Uncomment and export synthesize_perf_probe_point() Arnaldo Carvalho de Melo <acme@kernel.org> - 2016-06-15 20:20 +0200
[PATCH 02/19] perf tools: Fix rm_rf() to handle non-regular files correctly Arnaldo Carvalho de Melo <acme@kernel.org> - 2016-06-15 20:20 +0200
[PATCH 13/19] perf stdio: Separate standard headers output Arnaldo Carvalho de Melo <acme@kernel.org> - 2016-06-15 20:20 +0200
[PATCH 19/19] perf probe: Add --cache option to cache the probe definitions Arnaldo Carvalho de Melo <acme@kernel.org> - 2016-06-15 20:20 +0200
[PATCH 07/19] perf unwind: Fix compile error for static cross build Arnaldo Carvalho de Melo <acme@kernel.org> - 2016-06-15 20:20 +0200
Re: [GIT PULL 00/19] perf/core improvements and fixes Jiri Olsa <jolsa@redhat.com> - 2016-06-16 08:30 +0200
Re: [GIT PULL 00/19] perf/core improvements and fixes Arnaldo Carvalho de Melo <acme@kernel.org> - 2016-06-16 22:00 +0200
Re: [GIT PULL 00/19] perf/core improvements and fixes Ingo Molnar <mingo@kernel.org> - 2016-06-16 10:30 +0200
| From | Arnaldo Carvalho de Melo <acme@kernel.org> |
|---|---|
| Date | 2016-06-15 20:20 +0200 |
| Subject | [GIT PULL 00/19] perf/core improvements and fixes |
| Message-ID | <rKnzX-5Zq-3@gated-at.bofh.it> |
Hi Ingo,
Please consider pulling,
- Arnaldo
The following changes since commit 2c95afc1e83d93fac3be6923465e1753c2c53b0a:
perf/x86/intel, watchdog: Switch NMI watchdog to ref cycles on x86 (2016-06-14 11:16:59 +0200)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-20160615
for you to fetch changes up to 2fd457a34525ea3bc609e377b46af759af8a7934:
perf probe: Add --cache option to cache the probe definitions (2016-06-15 14:34:42 -0300)
----------------------------------------------------------------
perf/core improvements and fixes:
User visible:
- Add --ldlat option to 'perf mem' to specify load latency for loads
event (e.g. cpu/mem-loads/ ) (Jiri Olsa)
Build fixes:
- Fix libunwind related compile error for static cross build (He Kuang)
Infrastructure:
- UI refactorings to support headers with multiple lines, non-evsel
hists browsers, toggle showing callchains, etc (Jiri Olsa)
- More prep work for caching probe definitions, paving the way
for supporting SDT (Statically Defined Traces) userspace probes (Masami Hiramatsu)
- Handle NULL at perf_config_set__delete() (Taeung Song)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
He Kuang (1):
perf unwind: Fix compile error for static cross build
Jiri Olsa (10):
perf mem: Add --ldlat option
perf tools: Fix Data Object sort entry width index
perf tui: Separate hierarchy and standard headers output
perf stdio: Separate headers output
perf stdio: Separate hierarchy headers output
perf stdio: Separate standard headers output
perf stdio: Do not pass hists in hist_entry__fprintf
perf stdio: Add use_callchain parameter to hists__fprintf
perf hists: Replace perf_evsel arg perf_hpp_fmt's header callback
perf hists: Replace perf_evsel arg perf_hpp_fmt's width callback
Masami Hiramatsu (7):
perf tools: Fix rm_rf() to handle non-regular files correctly
perf probe: Fix to add NULL check for strndup
perf buildid: Rename and export build_id_cache__cachedir()
perf probe: Add perf_probe_event__copy()
perf probe: Uncomment and export synthesize_perf_probe_point()
perf probe: Introduce perf_cache interfaces
perf probe: Add --cache option to cache the probe definitions
Taeung Song (1):
perf config: Handle NULL at perf_config_set__delete()
tools/perf/Documentation/perf-mem.txt | 3 +
tools/perf/Documentation/perf-probe.txt | 4 +
tools/perf/builtin-diff.c | 7 +-
tools/perf/builtin-mem.c | 1 +
tools/perf/builtin-probe.c | 1 +
tools/perf/builtin-report.c | 3 +-
tools/perf/builtin-top.c | 2 +-
tools/perf/config/Makefile | 3 +
tools/perf/ui/browsers/hists.c | 39 ++--
tools/perf/ui/gtk/hists.c | 2 +-
tools/perf/ui/hist.c | 11 +-
tools/perf/ui/stdio/hist.c | 133 +++++++------
tools/perf/util/build-id.c | 12 +-
tools/perf/util/build-id.h | 2 +
tools/perf/util/config.c | 3 +
tools/perf/util/hist.c | 2 +-
tools/perf/util/hist.h | 7 +-
tools/perf/util/mem-events.c | 17 +-
tools/perf/util/mem-events.h | 1 +
tools/perf/util/probe-event.c | 128 ++++++++++--
tools/perf/util/probe-event.h | 5 +
tools/perf/util/probe-file.c | 331 ++++++++++++++++++++++++++++++++
tools/perf/util/probe-file.h | 20 ++
tools/perf/util/sort.c | 14 +-
tools/perf/util/util.c | 13 +-
25 files changed, 640 insertions(+), 124 deletions(-)
[toc] | [next] | [standalone]
| From | Arnaldo Carvalho de Melo <acme@kernel.org> |
|---|---|
| Date | 2016-06-15 20:20 +0200 |
| Subject | [PATCH 01/19] perf config: Handle NULL at perf_config_set__delete() |
| Message-ID | <rKnzY-5Zq-37@gated-at.bofh.it> |
| In reply to | #1423295 |
From: Taeung Song <treeze.taeung@gmail.com>
perf_config_set__delete() purge and free the config set that contains
all config key-value pairs. But if the config set (i.e. 'set' variable
at the function) is NULL, this is wrong so handle it.
Signed-off-by: Taeung Song <treeze.taeung@gmail.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/r/1465389413-8936-2-git-send-email-treeze.taeung@gmail.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/config.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/tools/perf/util/config.c b/tools/perf/util/config.c
index 8749eca3055f..31e09a4e8862 100644
--- a/tools/perf/util/config.c
+++ b/tools/perf/util/config.c
@@ -742,6 +742,9 @@ static void perf_config_set__purge(struct perf_config_set *set)
void perf_config_set__delete(struct perf_config_set *set)
{
+ if (set == NULL)
+ return;
+
perf_config_set__purge(set);
free(set);
}
--
2.5.5
[toc] | [prev] | [next] | [standalone]
| From | Arnaldo Carvalho de Melo <acme@kernel.org> |
|---|---|
| Date | 2016-06-15 20:20 +0200 |
| Subject | [PATCH 09/19] perf tools: Fix Data Object sort entry width index |
| Message-ID | <rKnzY-5Zq-51@gated-at.bofh.it> |
| In reply to | #1423295 |
From: Jiri Olsa <jolsa@kernel.org>
Putting correct HISTC_MEM_DADDR_DSO index to Data Object sort entry.
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1465928361-2442-3-git-send-email-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/sort.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/perf/util/sort.c b/tools/perf/util/sort.c
index c4e9bd70723c..ba5b42f28f0b 100644
--- a/tools/perf/util/sort.c
+++ b/tools/perf/util/sort.c
@@ -1218,7 +1218,7 @@ struct sort_entry sort_mem_daddr_dso = {
.se_header = "Data Object",
.se_cmp = sort__dso_daddr_cmp,
.se_snprintf = hist_entry__dso_daddr_snprintf,
- .se_width_idx = HISTC_MEM_DADDR_SYMBOL,
+ .se_width_idx = HISTC_MEM_DADDR_DSO,
};
struct sort_entry sort_mem_locked = {
--
2.5.5
[toc] | [prev] | [next] | [standalone]
| From | Arnaldo Carvalho de Melo <acme@kernel.org> |
|---|---|
| Date | 2016-06-15 20:20 +0200 |
| Subject | [PATCH 06/19] perf probe: Uncomment and export synthesize_perf_probe_point() |
| Message-ID | <rKnzY-5Zq-39@gated-at.bofh.it> |
| In reply to | #1423295 |
From: Masami Hiramatsu <mhiramat@kernel.org>
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>
---
tools/perf/util/probe-event.c | 39 ++++++++++++++++++++++-----------------
tools/perf/util/probe-event.h | 1 +
2 files changed, 23 insertions(+), 17 deletions(-)
diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
index 84f4b2b32ab7..cbc8a8bf0f36 100644
--- a/tools/perf/util/probe-event.c
+++ b/tools/perf/util/probe-event.c
@@ -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)
diff --git a/tools/perf/util/probe-event.h b/tools/perf/util/probe-event.h
index 367f886cfe00..0b024ba789e3 100644
--- a/tools/perf/util/probe-event.h
+++ b/tools/perf/util/probe-event.h
@@ -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);
--
2.5.5
[toc] | [prev] | [next] | [standalone]
| From | Arnaldo Carvalho de Melo <acme@kernel.org> |
|---|---|
| Date | 2016-06-15 20:20 +0200 |
| Subject | [PATCH 02/19] perf tools: Fix rm_rf() to handle non-regular files correctly |
| Message-ID | <rKnzY-5Zq-45@gated-at.bofh.it> |
| In reply to | #1423295 |
From: Masami Hiramatsu <mhiramat@kernel.org>
Fix rm_rf() to handle non-regular files correctly. This fix includes two
changes;
- Fix to use lstat(3) instead of stat(3) since if the target
file is a symbolic link, rm_rf() should unlink the symbolic
link itself, not the file which pointed by the symlink.
- Fix to unlink non-regular files (except for directory),
including symlink.
Even though the first one fixes to stat symlink itself, without second
fix, it still failed because the symlink is not a regular file.
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/20160608092911.3116.90929.stgit@devbox
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/util.c | 13 +++++--------
1 file changed, 5 insertions(+), 8 deletions(-)
diff --git a/tools/perf/util/util.c b/tools/perf/util/util.c
index 23504ad5d6dd..e08b9a092a23 100644
--- a/tools/perf/util/util.c
+++ b/tools/perf/util/util.c
@@ -97,20 +97,17 @@ int rm_rf(char *path)
scnprintf(namebuf, sizeof(namebuf), "%s/%s",
path, d->d_name);
- ret = stat(namebuf, &statbuf);
+ /* We have to check symbolic link itself */
+ ret = lstat(namebuf, &statbuf);
if (ret < 0) {
pr_debug("stat failed: %s\n", namebuf);
break;
}
- if (S_ISREG(statbuf.st_mode))
- ret = unlink(namebuf);
- else if (S_ISDIR(statbuf.st_mode))
+ if (S_ISDIR(statbuf.st_mode))
ret = rm_rf(namebuf);
- else {
- pr_debug("unknown file: %s\n", namebuf);
- ret = -1;
- }
+ else
+ ret = unlink(namebuf);
}
closedir(dir);
--
2.5.5
[toc] | [prev] | [next] | [standalone]
| From | Arnaldo Carvalho de Melo <acme@kernel.org> |
|---|---|
| Date | 2016-06-15 20:20 +0200 |
| Subject | [PATCH 13/19] perf stdio: Separate standard headers output |
| Message-ID | <rKnzY-5Zq-49@gated-at.bofh.it> |
| In reply to | #1423295 |
From: Jiri Olsa <jolsa@kernel.org>
Introducing hists__fprintf_standard_headers function to separate
standard headers display code.
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1465928361-2442-7-git-send-email-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/ui/stdio/hist.c | 38 ++++++++++++++++++++++++--------------
1 file changed, 24 insertions(+), 14 deletions(-)
diff --git a/tools/perf/ui/stdio/hist.c b/tools/perf/ui/stdio/hist.c
index 7498ce25bce3..5d007836d9a7 100644
--- a/tools/perf/ui/stdio/hist.c
+++ b/tools/perf/ui/stdio/hist.c
@@ -638,23 +638,16 @@ hists__fprintf_hierarchy_headers(struct hists *hists,
return print_hierarchy_header(hists, hpp, symbol_conf.field_sep, fp);
}
-static int hists__fprintf_headers(struct hists *hists, FILE *fp)
+static int
+hists__fprintf_standard_headers(struct hists *hists,
+ struct perf_hpp *hpp,
+ FILE *fp)
{
struct perf_hpp_fmt *fmt;
unsigned int width;
const char *sep = symbol_conf.field_sep;
- char bf[96];
- struct perf_hpp dummy_hpp = {
- .buf = bf,
- .size = sizeof(bf),
- };
bool first = true;
- fprintf(fp, "# ");
-
- if (symbol_conf.report_hierarchy)
- return hists__fprintf_hierarchy_headers(hists, &dummy_hpp, fp);
-
hists__for_each_format(hists, fmt) {
if (perf_hpp__should_skip(fmt, hists))
continue;
@@ -664,8 +657,8 @@ static int hists__fprintf_headers(struct hists *hists, FILE *fp)
else
first = false;
- fmt->header(fmt, &dummy_hpp, hists_to_evsel(hists));
- fprintf(fp, "%s", bf);
+ fmt->header(fmt, hpp, hists_to_evsel(hists));
+ fprintf(fp, "%s", hpp->buf);
}
fprintf(fp, "\n");
@@ -688,7 +681,7 @@ static int hists__fprintf_headers(struct hists *hists, FILE *fp)
else
first = false;
- width = fmt->width(fmt, &dummy_hpp, hists_to_evsel(hists));
+ width = fmt->width(fmt, hpp, hists_to_evsel(hists));
for (i = 0; i < width; i++)
fprintf(fp, ".");
}
@@ -698,6 +691,23 @@ static int hists__fprintf_headers(struct hists *hists, FILE *fp)
return 3;
}
+static int hists__fprintf_headers(struct hists *hists, FILE *fp)
+{
+ char bf[96];
+ struct perf_hpp dummy_hpp = {
+ .buf = bf,
+ .size = sizeof(bf),
+ };
+
+ fprintf(fp, "# ");
+
+ if (symbol_conf.report_hierarchy)
+ return hists__fprintf_hierarchy_headers(hists, &dummy_hpp, fp);
+ else
+ return hists__fprintf_standard_headers(hists, &dummy_hpp, fp);
+
+}
+
size_t hists__fprintf(struct hists *hists, bool show_header, int max_rows,
int max_cols, float min_pcnt, FILE *fp)
{
--
2.5.5
[toc] | [prev] | [next] | [standalone]
| From | Arnaldo Carvalho de Melo <acme@kernel.org> |
|---|---|
| Date | 2016-06-15 20:20 +0200 |
| Subject | [PATCH 19/19] perf probe: Add --cache option to cache the probe definitions |
| Message-ID | <rKnzY-5Zq-53@gated-at.bofh.it> |
| In reply to | #1423295 |
From: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Add --cache option to cache the probe definitions. This just saves the
result of the dwarf analysis to probe cache.
Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
Signed-off-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
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: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/20160615032840.31330.44412.stgit@devbox
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/Documentation/perf-probe.txt | 4 ++++
tools/perf/builtin-probe.c | 1 +
tools/perf/util/probe-event.c | 9 +++++++++
tools/perf/util/probe-event.h | 1 +
4 files changed, 15 insertions(+)
diff --git a/tools/perf/Documentation/perf-probe.txt b/tools/perf/Documentation/perf-probe.txt
index 3a8a9ba2b041..947db6fe512c 100644
--- a/tools/perf/Documentation/perf-probe.txt
+++ b/tools/perf/Documentation/perf-probe.txt
@@ -109,6 +109,10 @@ OPTIONS
Dry run. With this option, --add and --del doesn't execute actual
adding and removal operations.
+--cache::
+ Cache the probes (with --add option). Any events which successfully added
+ are also stored in the cache file.
+
--max-probes=NUM::
Set the maximum number of probe points for an event. Default is 128.
diff --git a/tools/perf/builtin-probe.c b/tools/perf/builtin-probe.c
index 9af859b28b15..6d7ab4316449 100644
--- a/tools/perf/builtin-probe.c
+++ b/tools/perf/builtin-probe.c
@@ -512,6 +512,7 @@ __cmd_probe(int argc, const char **argv, const char *prefix __maybe_unused)
"Enable symbol demangling"),
OPT_BOOLEAN(0, "demangle-kernel", &symbol_conf.demangle_kernel,
"Enable kernel symbol demangling"),
+ OPT_BOOLEAN(0, "cache", &probe_conf.cache, "Manipulate probe cache"),
OPT_END()
};
int ret;
diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
index cbc8a8bf0f36..084756c17309 100644
--- a/tools/perf/util/probe-event.c
+++ b/tools/perf/util/probe-event.c
@@ -2514,6 +2514,7 @@ static int __add_probe_trace_events(struct perf_probe_event *pev,
{
int i, fd, ret;
struct probe_trace_event *tev = NULL;
+ struct probe_cache *cache = NULL;
struct strlist *namelist;
fd = probe_file__open(PF_FL_RW | (pev->uprobes ? PF_FL_UPROBE : 0));
@@ -2555,6 +2556,14 @@ static int __add_probe_trace_events(struct perf_probe_event *pev,
}
if (ret == -EINVAL && pev->uprobes)
warn_uprobe_event_compat(tev);
+ if (ret == 0 && probe_conf.cache) {
+ cache = probe_cache__new(pev->target);
+ if (!cache ||
+ probe_cache__add_entry(cache, pev, tevs, ntevs) < 0 ||
+ probe_cache__commit(cache) < 0)
+ pr_warning("Failed to add event to probe cache\n");
+ probe_cache__delete(cache);
+ }
strlist__delete(namelist);
close_out:
diff --git a/tools/perf/util/probe-event.h b/tools/perf/util/probe-event.h
index 0b024ba789e3..432b690d3f17 100644
--- a/tools/perf/util/probe-event.h
+++ b/tools/perf/util/probe-event.h
@@ -12,6 +12,7 @@ struct probe_conf {
bool show_location_range;
bool force_add;
bool no_inlines;
+ bool cache;
int max_probes;
};
extern struct probe_conf probe_conf;
--
2.5.5
[toc] | [prev] | [next] | [standalone]
| From | Arnaldo Carvalho de Melo <acme@kernel.org> |
|---|---|
| Date | 2016-06-15 20:20 +0200 |
| Subject | [PATCH 07/19] perf unwind: Fix compile error for static cross build |
| Message-ID | <rKnzY-5Zq-55@gated-at.bofh.it> |
| In reply to | #1423295 |
From: He Kuang <hekuang@huawei.com>
Build failure for static cross-compiling on aarch64, with libunwind-x86
provided:
$ file ./libunwind_for_x86_on_aarch64/lib/libunwind-x86.so.8.0.1
libunwind-x86.so.8.0.1: ELF 64-bit LSB shared object, ARM aarch64,
version 1 (SYSV), dynamically linked, not stripped
$ make LDFLAGS=-static LIBUNWIND_DIR=./libunwind_for_x86_on_aarch64
ARCH=aarch64 CROSS_COMPILE=aarch64-buildroot-linux-gnu-
~/libperf.a(libperf-in.o): In function `find_proc_info':
:(.text+0xae4ac): undefined reference to `_Ux86_dwarf_search_unwind_table'
~/libperf.a(libperf-in.o): In function `_unwind__prepare_access':
:(.text+0xaedd0): undefined reference to `_Ux86_create_addr_space'
:(.text+0xaee24): undefined reference to `_Ux86_set_caching_policy'
~/libperf.a(libperf-in.o): In function `_unwind__flush_access':
:(.text+0xaee98): undefined reference to `_Ux86_flush_cache'
~/libperf.a(libperf-in.o): In function `_unwind__finish_access':
:(.text+0xaef08): undefined reference to `_Ux86_destroy_addr_space'
~/libperf.a(libperf-in.o): In function `get_entries':
:(.text+0xaf148): undefined reference to `_Ux86_init_remote'
:(.text+0xaf184): undefined reference to `_Ux86_get_reg'
:(.text+0xaf1a4): undefined reference to `_Ux86_step'
collect2: error: ld returned 1 exit status
Makefile.perf:350: recipe for target '~/perf' failed
make[1]: *** [~/perf] Error 1
Makefile:68: recipe for target 'all' failed
make: *** [all] Error 2
This is because the remote libunwind library detected is not appended to
EXTLIBS variable, which will be included between 'start-group' and
'end-group' when linking.
The existing variable LIBUNWIND_LIBS is assigned to libs for local
unwind, this patch introduces a new variable EXTLIBS_LIBUNWIND for
storing remote libunwind libraries instead.
Signed-off-by: He Kuang <hekuang@huawei.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/r/1465988636-81502-1-git-send-email-hekuang@huawei.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/config/Makefile | 3 +++
1 file changed, 3 insertions(+)
diff --git a/tools/perf/config/Makefile b/tools/perf/config/Makefile
index 098874b99981..80018feb99c0 100644
--- a/tools/perf/config/Makefile
+++ b/tools/perf/config/Makefile
@@ -365,6 +365,7 @@ ifndef NO_LIBUNWIND
$(call detected,CONFIG_LIBUNWIND_X86)
CFLAGS += -DHAVE_LIBUNWIND_X86_SUPPORT
LDFLAGS += -lunwind-x86
+ EXTLIBS_LIBUNWIND += -lunwind-x86
have_libunwind = 1
endif
@@ -372,6 +373,7 @@ ifndef NO_LIBUNWIND
$(call detected,CONFIG_LIBUNWIND_AARCH64)
CFLAGS += -DHAVE_LIBUNWIND_AARCH64_SUPPORT
LDFLAGS += -lunwind-aarch64
+ EXTLIBS_LIBUNWIND += -lunwind-aarch64
have_libunwind = 1
$(call feature_check,libunwind-debug-frame-aarch64)
ifneq ($(feature-libunwind-debug-frame-aarch64), 1)
@@ -449,6 +451,7 @@ ifndef NO_LIBUNWIND
CFLAGS += -DHAVE_LIBUNWIND_SUPPORT
CFLAGS += $(LIBUNWIND_CFLAGS)
LDFLAGS += $(LIBUNWIND_LDFLAGS)
+ EXTLIBS += $(EXTLIBS_LIBUNWIND)
endif
ifndef NO_LIBAUDIT
--
2.5.5
[toc] | [prev] | [next] | [standalone]
| From | Jiri Olsa <jolsa@redhat.com> |
|---|---|
| Date | 2016-06-16 08:30 +0200 |
| Message-ID | <rKyYu-4LB-11@gated-at.bofh.it> |
| In reply to | #1423295 |
On Wed, Jun 15, 2016 at 03:13:09PM -0300, Arnaldo Carvalho de Melo wrote: SNIP > ---------------------------------------------------------------- > He Kuang (1): > perf unwind: Fix compile error for static cross build > > Jiri Olsa (10): > perf mem: Add --ldlat option > perf tools: Fix Data Object sort entry width index > perf tui: Separate hierarchy and standard headers output > perf stdio: Separate headers output > perf stdio: Separate hierarchy headers output > perf stdio: Separate standard headers output > perf stdio: Do not pass hists in hist_entry__fprintf > perf stdio: Add use_callchain parameter to hists__fprintf > perf hists: Replace perf_evsel arg perf_hpp_fmt's header callback > perf hists: Replace perf_evsel arg perf_hpp_fmt's width callback hi, any reason for skipping this one?: perf tools: Rename __hists__add_entry to hists__add_entry thanks, jirka
[toc] | [prev] | [next] | [standalone]
| From | Arnaldo Carvalho de Melo <acme@kernel.org> |
|---|---|
| Date | 2016-06-16 22:00 +0200 |
| Message-ID | <rKLCh-437-5@gated-at.bofh.it> |
| In reply to | #1423701 |
Em Thu, Jun 16, 2016 at 08:29:47AM +0200, Jiri Olsa escreveu: > On Wed, Jun 15, 2016 at 03:13:09PM -0300, Arnaldo Carvalho de Melo wrote: > > SNIP > > > ---------------------------------------------------------------- > > He Kuang (1): > > perf unwind: Fix compile error for static cross build > > > > Jiri Olsa (10): > > perf mem: Add --ldlat option > > perf tools: Fix Data Object sort entry width index > > perf tui: Separate hierarchy and standard headers output > > perf stdio: Separate headers output > > perf stdio: Separate hierarchy headers output > > perf stdio: Separate standard headers output > > perf stdio: Do not pass hists in hist_entry__fprintf > > perf stdio: Add use_callchain parameter to hists__fprintf > > perf hists: Replace perf_evsel arg perf_hpp_fmt's header callback > > perf hists: Replace perf_evsel arg perf_hpp_fmt's width callback > hi, > any reason for skipping this one?: > perf tools: Rename __hists__add_entry to hists__add_entry nope, will apply. - Arnaldo
[toc] | [prev] | [next] | [standalone]
| From | Ingo Molnar <mingo@kernel.org> |
|---|---|
| Date | 2016-06-16 10:30 +0200 |
| Message-ID | <rKAQy-5Ue-15@gated-at.bofh.it> |
| In reply to | #1423295 |
* Arnaldo Carvalho de Melo <acme@kernel.org> wrote: > Hi Ingo, > > Please consider pulling, > > - Arnaldo > > The following changes since commit 2c95afc1e83d93fac3be6923465e1753c2c53b0a: > > perf/x86/intel, watchdog: Switch NMI watchdog to ref cycles on x86 (2016-06-14 11:16:59 +0200) > > are available in the git repository at: > > git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-20160615 > > for you to fetch changes up to 2fd457a34525ea3bc609e377b46af759af8a7934: > > perf probe: Add --cache option to cache the probe definitions (2016-06-15 14:34:42 -0300) > > ---------------------------------------------------------------- > perf/core improvements and fixes: > > User visible: > > - Add --ldlat option to 'perf mem' to specify load latency for loads > event (e.g. cpu/mem-loads/ ) (Jiri Olsa) > > Build fixes: > > - Fix libunwind related compile error for static cross build (He Kuang) > > Infrastructure: > > - UI refactorings to support headers with multiple lines, non-evsel > hists browsers, toggle showing callchains, etc (Jiri Olsa) > > - More prep work for caching probe definitions, paving the way > for supporting SDT (Statically Defined Traces) userspace probes (Masami Hiramatsu) > > - Handle NULL at perf_config_set__delete() (Taeung Song) > > Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> > > ---------------------------------------------------------------- > He Kuang (1): > perf unwind: Fix compile error for static cross build > > Jiri Olsa (10): > perf mem: Add --ldlat option > perf tools: Fix Data Object sort entry width index > perf tui: Separate hierarchy and standard headers output > perf stdio: Separate headers output > perf stdio: Separate hierarchy headers output > perf stdio: Separate standard headers output > perf stdio: Do not pass hists in hist_entry__fprintf > perf stdio: Add use_callchain parameter to hists__fprintf > perf hists: Replace perf_evsel arg perf_hpp_fmt's header callback > perf hists: Replace perf_evsel arg perf_hpp_fmt's width callback > > Masami Hiramatsu (7): > perf tools: Fix rm_rf() to handle non-regular files correctly > perf probe: Fix to add NULL check for strndup > perf buildid: Rename and export build_id_cache__cachedir() > perf probe: Add perf_probe_event__copy() > perf probe: Uncomment and export synthesize_perf_probe_point() > perf probe: Introduce perf_cache interfaces > perf probe: Add --cache option to cache the probe definitions > > Taeung Song (1): > perf config: Handle NULL at perf_config_set__delete() > > tools/perf/Documentation/perf-mem.txt | 3 + > tools/perf/Documentation/perf-probe.txt | 4 + > tools/perf/builtin-diff.c | 7 +- > tools/perf/builtin-mem.c | 1 + > tools/perf/builtin-probe.c | 1 + > tools/perf/builtin-report.c | 3 +- > tools/perf/builtin-top.c | 2 +- > tools/perf/config/Makefile | 3 + > tools/perf/ui/browsers/hists.c | 39 ++-- > tools/perf/ui/gtk/hists.c | 2 +- > tools/perf/ui/hist.c | 11 +- > tools/perf/ui/stdio/hist.c | 133 +++++++------ > tools/perf/util/build-id.c | 12 +- > tools/perf/util/build-id.h | 2 + > tools/perf/util/config.c | 3 + > tools/perf/util/hist.c | 2 +- > tools/perf/util/hist.h | 7 +- > tools/perf/util/mem-events.c | 17 +- > tools/perf/util/mem-events.h | 1 + > tools/perf/util/probe-event.c | 128 ++++++++++-- > tools/perf/util/probe-event.h | 5 + > tools/perf/util/probe-file.c | 331 ++++++++++++++++++++++++++++++++ > tools/perf/util/probe-file.h | 20 ++ > tools/perf/util/sort.c | 14 +- > tools/perf/util/util.c | 13 +- > 25 files changed, 640 insertions(+), 124 deletions(-) Pulled, thanks a lot Arnaldo! Ingo
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web