From: Jiri Olsa <jolsa@redhat.com>
To: Andi Kleen <andi@firstfloor.org>
Cc: linux-kernel@vger.kernel.org, acme@redhat.com,
peterz@infradead.org, eranian@google.com, mingo@kernel.org,
Andi Kleen <ak@linux.intel.com>
Subject: Re: [PATCH 32/33] perf, tools: Default to cpu// for events v2
Date: Sat, 27 Oct 2012 22:16:26 +0200 [thread overview]
Message-ID: <20121027201626.GE1039@krava.redhat.com> (raw)
In-Reply-To: <1351283415-13170-33-git-send-email-andi@firstfloor.org>
On Fri, Oct 26, 2012 at 01:30:14PM -0700, Andi Kleen wrote:
> From: Andi Kleen <ak@linux.intel.com>
>
> When an event fails to parse and it's not in a new style format,
> try to parse it again as a cpu event.
>
> This allows to use sysfs exported events directly without //, so I can use
>
> perf record -e tx-aborts ...
hum, seems usefull and hacky ;)
would not work for modifier stuff like:
tx-aborts:u (not sure if 'u' makes sense for 'tx-aborts'..)
but nevermind, seems like usefull shortcut
>
> instead of
>
> perf record -e cpu/tx-aborts/
>
> v2: Handle multiple events
> Signed-off-by: Andi Kleen <ak@linux.intel.com>
> ---
> tools/perf/util/parse-events.c | 37 +++++++++++++++++++++++++++++++++++++
> 1 files changed, 37 insertions(+), 0 deletions(-)
>
> diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c
> index f800765..ee6a73c 100644
> --- a/tools/perf/util/parse-events.c
> +++ b/tools/perf/util/parse-events.c
> @@ -768,6 +768,23 @@ int parse_events_name(struct list_head *list, char *name)
> return 0;
> }
>
> +static void str_append(char **s, int *len, const char *a)
> +{
> + int olen = *s ? strlen(*s) : 0;
> + int nlen = olen + strlen(a) + 1;
> + if (*len < nlen) {
> + *len = *len * 2;
> + if (*len < nlen)
> + *len = nlen;
> + *s = realloc(*s, *len);
> + if (!*s)
trailing whitespace
> + exit(ENOMEM);
> + if (olen == 0)
> + **s = 0;
> + }
> + strcat(*s, a);
> +}
> +
> static int parse_events__scanner(const char *str, void *data, int start_token)
> {
> YY_BUFFER_STATE buffer;
> @@ -788,6 +805,26 @@ static int parse_events__scanner(const char *str, void *data, int start_token)
> parse_events__flush_buffer(buffer, scanner);
> parse_events__delete_buffer(buffer, scanner);
> parse_events_lex_destroy(scanner);
> +
> + if (ret && !strchr(str, '/')) {
> + char *o = strdup(str);
> + char *s = NULL;
> + char *t = o;
> + char *p;
> + int len = 0;
> +
> + if (!o)
> + return ret;
> + while ((p = strsep(&t, ",")) != NULL) {
> + if (s)
> + str_append(&s, &len, ",");
> + str_append(&s, &len, "cpu/");
> + str_append(&s, &len, p);
> + str_append(&s, &len, "/");
> + }
> + free(o);
> + ret = parse_events__scanner(s, data, start_token);
any chance above could be in separated function?
> + }
> return ret;
> }
>
> --
> 1.7.7.6
>
next prev parent reply other threads:[~2012-10-27 20:16 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-26 20:29 perf PMU support for Haswell v4 Andi Kleen
2012-10-26 20:29 ` [PATCH 01/33] perf, x86: Add PEBSv2 record support Andi Kleen
2012-10-29 10:08 ` Namhyung Kim
2012-10-29 10:13 ` Andi Kleen
2012-10-29 10:23 ` Peter Zijlstra
2012-10-26 20:29 ` [PATCH 02/33] perf, x86: Basic Haswell PMU support v2 Andi Kleen
2012-10-26 20:29 ` [PATCH 03/33] perf, x86: Basic Haswell PEBS support v3 Andi Kleen
2012-10-26 20:29 ` [PATCH 04/33] perf, x86: Support the TSX intx/intx_cp qualifiers v2 Andi Kleen
2012-10-26 20:29 ` [PATCH 05/33] perf, kvm: Support the intx/intx_cp modifiers in KVM arch perfmon emulation v3 Andi Kleen
2012-10-30 9:25 ` Gleb Natapov
2012-10-26 20:29 ` [PATCH 06/33] perf, x86: Support PERF_SAMPLE_ADDR on Haswell Andi Kleen
2012-10-26 20:29 ` [PATCH 07/33] perf, x86: Support Haswell v4 LBR format Andi Kleen
2012-10-26 20:29 ` [PATCH 08/33] perf, x86: Disable LBR recording for unknown LBR_FMT Andi Kleen
2012-10-26 20:29 ` [PATCH 09/33] perf, x86: Support LBR filtering by INTX/NOTX/ABORT v2 Andi Kleen
2012-10-26 20:29 ` [PATCH 10/33] perf, tools: Add abort,notx,intx branch filter options to perf report -j v2 Andi Kleen
2012-10-29 10:19 ` Namhyung Kim
2012-10-26 20:29 ` [PATCH 11/33] perf, tools: Support sorting by intx, abort branch flags Andi Kleen
2012-10-26 20:29 ` [PATCH 12/33] perf, x86: Support full width counting Andi Kleen
2012-10-26 20:29 ` [PATCH 13/33] perf, x86: Avoid checkpointed counters causing excessive TSX aborts v3 Andi Kleen
2012-10-26 20:29 ` [PATCH 14/33] perf, core: Add a concept of a weightened sample Andi Kleen
2012-10-26 20:29 ` [PATCH 15/33] perf, x86: Support weight samples for PEBS Andi Kleen
2012-10-26 20:29 ` [PATCH 16/33] perf, tools: Add support for weight v2 Andi Kleen
2012-10-29 10:44 ` Namhyung Kim
2012-10-29 11:02 ` Andi Kleen
2012-10-26 20:29 ` [PATCH 17/33] perf, tools: Handle XBEGIN like a jump Andi Kleen
2012-10-26 20:30 ` [PATCH 18/33] perf, x86: Support for printing PMU state on spurious PMIs v3 Andi Kleen
2012-10-26 20:30 ` [PATCH 19/33] perf, core: Add generic transaction flags Andi Kleen
2012-10-26 20:30 ` [PATCH 20/33] perf, x86: Add Haswell specific transaction flag reporting Andi Kleen
2012-10-26 20:30 ` [PATCH 21/33] perf, tools: Add support for record transaction flags Andi Kleen
2012-10-29 10:49 ` Namhyung Kim
2012-10-26 20:30 ` [PATCH 22/33] perf, tools: Point --sort documentation to --help Andi Kleen
2012-10-26 20:30 ` [PATCH 23/33] perf, tools: Add browser support for transaction flags Andi Kleen
2012-10-26 20:30 ` [PATCH 24/33] perf, tools: Move parse_events error printing to parse_events_options Andi Kleen
2012-10-27 19:08 ` Jiri Olsa
2012-10-30 11:58 ` [tip:perf/core] perf " tip-bot for Andi Kleen
2012-10-26 20:30 ` [PATCH 25/33] perf, tools: Support events with - in the name Andi Kleen
2012-10-27 19:32 ` Jiri Olsa
2012-10-26 20:30 ` [PATCH 26/33] perf, x86: Report the arch perfmon events in sysfs Andi Kleen
2012-10-26 20:30 ` [PATCH 27/33] tools, perf: Add a precise event qualifier Andi Kleen
2012-10-27 19:35 ` Jiri Olsa
2012-10-28 19:13 ` Andi Kleen
2012-10-28 19:24 ` Jiri Olsa
2012-10-28 20:06 ` Andi Kleen
2012-10-26 20:30 ` [PATCH 28/33] perf, x86: Add Haswell TSX event aliases Andi Kleen
2012-10-26 20:30 ` [PATCH 29/33] perf, tools: Add perf stat --transaction v2 Andi Kleen
2012-10-26 20:30 ` [PATCH 30/33] perf, x86: Add a Haswell precise instructions event Andi Kleen
2012-10-26 20:30 ` [PATCH 31/33] perf, tools: Support generic events as pmu event names v2 Andi Kleen
2012-10-27 19:42 ` Jiri Olsa
2012-10-28 19:12 ` Andi Kleen
2012-10-29 9:23 ` Peter Zijlstra
2012-10-26 20:30 ` [PATCH 32/33] perf, tools: Default to cpu// for events v2 Andi Kleen
2012-10-27 20:16 ` Jiri Olsa [this message]
2012-10-26 20:30 ` [PATCH 33/33] perf, tools: List kernel supplied event aliases in perf list v2 Andi Kleen
2012-10-27 20:20 ` Jiri Olsa
2012-10-28 19:05 ` Andi Kleen
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=20121027201626.GE1039@krava.redhat.com \
--to=jolsa@redhat.com \
--cc=acme@redhat.com \
--cc=ak@linux.intel.com \
--cc=andi@firstfloor.org \
--cc=eranian@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=peterz@infradead.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox