From: Jiri Olsa <jolsa@kernel.org>
To: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: lkml <linux-kernel@vger.kernel.org>,
David Ahern <dsahern@gmail.com>, Ingo Molnar <mingo@kernel.org>,
Namhyung Kim <namhyung@kernel.org>,
Peter Zijlstra <a.p.zijlstra@chello.nl>,
Stephane Eranian <eranian@google.com>,
Andi Kleen <ak@linux.intel.com>
Subject: [PATCH 1/6] perf mem: Add --ldlat option
Date: Thu, 24 Mar 2016 13:52:15 +0100 [thread overview]
Message-ID: <1458823940-24583-2-git-send-email-jolsa@kernel.org> (raw)
In-Reply-To: <1458823940-24583-1-git-send-email-jolsa@kernel.org>
Adding --ldlat option to specify desired latency
for loads event.
Specify 50 as loads event latency:
$ perf mem record -e ldlat-loads -v --ldlat 50 true
calling: record -W -d -e cpu/mem-loads,ldlat=50/P true
Link: http://lkml.kernel.org/n/tip-ec2m0cvivkfs8uhtiv411hfc@git.kernel.org
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
---
tools/perf/Documentation/perf-mem.txt | 3 +++
tools/perf/builtin-mem.c | 1 +
tools/perf/util/mem-events.c | 17 ++++++++++++++++-
tools/perf/util/mem-events.h | 1 +
4 files changed, 21 insertions(+), 1 deletion(-)
diff --git a/tools/perf/Documentation/perf-mem.txt b/tools/perf/Documentation/perf-mem.txt
index 43310d8661fe..6676d2784733 100644
--- a/tools/perf/Documentation/perf-mem.txt
+++ b/tools/perf/Documentation/perf-mem.txt
@@ -48,6 +48,9 @@ OPTIONS
option can be passed in record mode. It will be interpreted the same way as perf
record.
+--ldload::
+ Specify desired latency for loads event.
+
SEE ALSO
--------
linkperf:perf-record[1], linkperf:perf-report[1]
diff --git a/tools/perf/builtin-mem.c b/tools/perf/builtin-mem.c
index 914f6fe192e3..bf0bfca5be20 100644
--- a/tools/perf/builtin-mem.c
+++ b/tools/perf/builtin-mem.c
@@ -66,6 +66,7 @@ static int __cmd_record(int argc, const char **argv, struct perf_mem *mem)
OPT_CALLBACK('e', "event", &mem, "event",
"event selector. use 'perf mem record -e list' to list available events",
parse_record_events),
+ OPT_UINTEGER(0, "ldlat", &perf_mem_events__loads_ldlat, "mem-loads latency"),
OPT_INCR('v', "verbose", &verbose,
"be more verbose (show counter open errors, etc)"),
OPT_END()
diff --git a/tools/perf/util/mem-events.c b/tools/perf/util/mem-events.c
index e6b01e6f70a0..3ff60f08a778 100644
--- a/tools/perf/util/mem-events.c
+++ b/tools/perf/util/mem-events.c
@@ -10,10 +10,12 @@
#include "debug.h"
#include "symbol.h"
+unsigned int perf_mem_events__loads_ldlat = 30;
+
#define E(t, n, s) { .tag = t, .name = n, .sysfs_name = s }
struct perf_mem_event perf_mem_events[PERF_MEM_EVENTS__MAX] = {
- E("ldlat-loads", "cpu/mem-loads,ldlat=30/P", "mem-loads"),
+ E("ldlat-loads", "cpu/mem-loads,ldlat=%u/P", "mem-loads"),
E("ldlat-stores", "cpu/mem-stores/P", "mem-stores"),
E("stlb-miss-loads", "cpu/mem-stlb-miss-loads/P", "mem-stlb-miss-loads"),
E("stlb-miss-stores", "cpu/mem-stlb-miss-stores/P", "mem-stlb-miss-stores"),
@@ -39,8 +41,21 @@ struct perf_mem_event perf_mem_events[PERF_MEM_EVENTS__MAX] = {
#undef E
+static char mem_loads_name[100];
+static bool mem_loads_name__init;
+
char *perf_mem_events__name(int i)
{
+ if (i == PERF_MEM_EVENTS__LOAD) {
+ if (!mem_loads_name__init) {
+ mem_loads_name__init = true;
+ scnprintf(mem_loads_name, sizeof(mem_loads_name),
+ perf_mem_events[i].name,
+ perf_mem_events__loads_ldlat);
+ }
+ return mem_loads_name;
+ }
+
return (char *)perf_mem_events[i].name;
}
diff --git a/tools/perf/util/mem-events.h b/tools/perf/util/mem-events.h
index de88f4267cd1..939786ffab2a 100644
--- a/tools/perf/util/mem-events.h
+++ b/tools/perf/util/mem-events.h
@@ -37,6 +37,7 @@ enum {
};
extern struct perf_mem_event perf_mem_events[PERF_MEM_EVENTS__MAX];
+extern unsigned int perf_mem_events__loads_ldlat;
int perf_mem_events__parse(const char *str);
int perf_mem_events__init(void);
--
2.4.3
next prev parent reply other threads:[~2016-03-24 12:52 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-24 12:52 [PATCH 0/6][perf/core] perf tools: Fixes Jiri Olsa
2016-03-24 12:52 ` Jiri Olsa [this message]
2016-03-24 15:57 ` [PATCH 1/6] perf mem: Add --ldlat option Arnaldo Carvalho de Melo
2016-03-26 16:06 ` Jiri Olsa
2016-04-07 13:58 ` Jiri Olsa
2016-03-24 12:52 ` [PATCH 2/6] perf mem: Add -U/-K (--all-user/--all-kernel) options Jiri Olsa
2016-03-24 15:58 ` Arnaldo Carvalho de Melo
2016-03-31 6:51 ` [tip:perf/core] " tip-bot for Jiri Olsa
2016-03-24 12:52 ` [PATCH 3/6] perf tools: Make hists__collapse_insert_entry static Jiri Olsa
2016-03-31 6:52 ` [tip:perf/core] " tip-bot for Jiri Olsa
2016-03-24 12:52 ` [PATCH 4/6] perf tools: Introduce trim function Jiri Olsa
2016-03-24 12:52 ` [PATCH 5/6] perf tools: Unify -f/--force option documentation Jiri Olsa
2016-03-31 6:52 ` [tip:perf/core] perf tools: Make -f/--force option documentation consistent across tools tip-bot for Jiri Olsa
2016-03-24 12:52 ` [PATCH 6/6] perf tests: Add test to check for event times Jiri Olsa
2016-03-31 6:52 ` [tip:perf/core] " tip-bot for Jiri Olsa
2016-03-24 16:06 ` [PATCH 0/6][perf/core] perf tools: Fixes Arnaldo Carvalho de Melo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1458823940-24583-2-git-send-email-jolsa@kernel.org \
--to=jolsa@kernel.org \
--cc=a.p.zijlstra@chello.nl \
--cc=acme@kernel.org \
--cc=ak@linux.intel.com \
--cc=dsahern@gmail.com \
--cc=eranian@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=namhyung@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.