From: Andi Kleen <andi@firstfloor.org>
To: acme@infradead.org
Cc: eranian@google.com, jolsa@redhat.com,
linux-kernel@vger.kernel.org, Andi Kleen <ak@linux.intel.com>
Subject: [PATCH 2/5] tools, perf: Add support to evsel for enabling counters
Date: Fri, 2 Aug 2013 17:41:10 -0700 [thread overview]
Message-ID: <1375490473-1503-3-git-send-email-andi@firstfloor.org> (raw)
In-Reply-To: <1375490473-1503-1-git-send-email-andi@firstfloor.org>
From: Andi Kleen <ak@linux.intel.com>
Add support for enabling already set up counters by using an
ioctl. I share some code with the filter setup.
Signed-off-by: Andi Kleen <ak@linux.intel.com>
---
tools/perf/util/evsel.c | 21 ++++++++++++++++++---
tools/perf/util/evsel.h | 1 +
2 files changed, 19 insertions(+), 3 deletions(-)
diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c
index c9c7494..60e0d84 100644
--- a/tools/perf/util/evsel.c
+++ b/tools/perf/util/evsel.c
@@ -605,16 +605,16 @@ int perf_evsel__alloc_fd(struct perf_evsel *evsel, int ncpus, int nthreads)
return evsel->fd != NULL ? 0 : -ENOMEM;
}
-int perf_evsel__set_filter(struct perf_evsel *evsel, int ncpus, int nthreads,
- const char *filter)
+static int perf_evsel__run_ioctl(struct perf_evsel *evsel, int ncpus, int nthreads,
+ int ioc, void *arg)
{
int cpu, thread;
for (cpu = 0; cpu < ncpus; cpu++) {
for (thread = 0; thread < nthreads; thread++) {
int fd = FD(evsel, cpu, thread),
- err = ioctl(fd, PERF_EVENT_IOC_SET_FILTER, filter);
+ err = ioctl(fd, ioc, arg);
if (err)
return err;
}
@@ -623,6 +623,21 @@ int perf_evsel__set_filter(struct perf_evsel *evsel, int ncpus, int nthreads,
return 0;
}
+int perf_evsel__set_filter(struct perf_evsel *evsel, int ncpus, int nthreads,
+ const char *filter)
+{
+ return perf_evsel__run_ioctl(evsel, ncpus, nthreads,
+ PERF_EVENT_IOC_SET_FILTER,
+ (void *)filter);
+}
+
+int perf_evsel__enable(struct perf_evsel *evsel, int ncpus, int nthreads)
+{
+ return perf_evsel__run_ioctl(evsel, ncpus, nthreads,
+ PERF_EVENT_IOC_ENABLE,
+ 0);
+}
+
int perf_evsel__alloc_id(struct perf_evsel *evsel, int ncpus, int nthreads)
{
evsel->sample_id = xyarray__new(ncpus, nthreads, sizeof(struct perf_sample_id));
diff --git a/tools/perf/util/evsel.h b/tools/perf/util/evsel.h
index 3f156cc..b057e9c 100644
--- a/tools/perf/util/evsel.h
+++ b/tools/perf/util/evsel.h
@@ -142,6 +142,7 @@ void perf_evsel__set_sample_id(struct perf_evsel *evsel);
int perf_evsel__set_filter(struct perf_evsel *evsel, int ncpus, int nthreads,
const char *filter);
+int perf_evsel__enable(struct perf_evsel *evsel, int ncpus, int nthreads);
int perf_evsel__open_per_cpu(struct perf_evsel *evsel,
struct cpu_map *cpus);
--
1.8.3.1
next prev parent reply other threads:[~2013-08-03 0:41 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-08-03 0:41 Misc perf stat improvements Andi Kleen
2013-08-03 0:41 ` [PATCH 1/5] perf, tools: Remove obsolete dummy execve Andi Kleen
2013-08-12 10:19 ` [tip:perf/core] perf evlist: " tip-bot for Andi Kleen
2013-08-03 0:41 ` Andi Kleen [this message]
2013-08-05 8:28 ` [PATCH 2/5] tools, perf: Add support to evsel for enabling counters Namhyung Kim
2013-08-05 16:10 ` Arnaldo Carvalho de Melo
2013-08-12 10:19 ` [tip:perf/core] perf evsel: Add support " tip-bot for Andi Kleen
2013-08-03 0:41 ` [PATCH 3/5] perf, tools: Add support for --initial-delay option to perf stat Andi Kleen
2013-08-12 10:20 ` [tip:perf/core] perf stat: Add support for --initial-delay option tip-bot for Andi Kleen
2013-08-03 0:41 ` [PATCH 4/5] perf, tools: flush output after each line in stat interval mode Andi Kleen
2013-08-12 10:20 ` [tip:perf/core] perf stat: Flush output after each line in " tip-bot for Andi Kleen
2013-08-03 0:41 ` [PATCH 5/5] perf, tools: Output running time and run/enabled ratio in CSV mode Andi Kleen
2013-08-05 9:45 ` Jiri Olsa
2013-08-05 9:45 ` Misc perf stat improvements Jiri Olsa
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=1375490473-1503-3-git-send-email-andi@firstfloor.org \
--to=andi@firstfloor.org \
--cc=acme@infradead.org \
--cc=ak@linux.intel.com \
--cc=eranian@google.com \
--cc=jolsa@redhat.com \
--cc=linux-kernel@vger.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.