From d5e157126cf0f6d76a631bc19f55301d7197f2dc Mon Sep 17 00:00:00 2001 From: Frederic Weisbecker Date: Thu, 13 Aug 2009 10:27:18 +0200 Subject: [PATCH] --- yaml --- r: 156741 b: refs/heads/master c: 3a9f131fb00b8ac5950a11ad1599e45edfb5ae44 h: refs/heads/master i: 156739: dbec46278c0c466794bf9d8fc6de6ce86fc8b72c v: v3 --- [refs] | 2 +- trunk/tools/perf/builtin-record.c | 2 +- trunk/tools/perf/util/parse-events.c | 10 ++++++++++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 3a4f1fe86d70..48c09feb1231 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 28402971d869e26271b25301011f667d3a5640c3 +refs/heads/master: 3a9f131fb00b8ac5950a11ad1599e45edfb5ae44 diff --git a/trunk/tools/perf/builtin-record.c b/trunk/tools/perf/builtin-record.c index de76008fbaa2..78adc47da869 100644 --- a/trunk/tools/perf/builtin-record.c +++ b/trunk/tools/perf/builtin-record.c @@ -398,7 +398,7 @@ static void create_counter(int counter, int cpu, pid_t pid) PERF_FORMAT_TOTAL_TIME_RUNNING | PERF_FORMAT_ID; - attr->sample_type = PERF_SAMPLE_IP | PERF_SAMPLE_TID; + attr->sample_type |= PERF_SAMPLE_IP | PERF_SAMPLE_TID; if (freq) { attr->sample_type |= PERF_SAMPLE_PERIOD; diff --git a/trunk/tools/perf/util/parse-events.c b/trunk/tools/perf/util/parse-events.c index 4858d83b3b67..044178408783 100644 --- a/trunk/tools/perf/util/parse-events.c +++ b/trunk/tools/perf/util/parse-events.c @@ -379,6 +379,7 @@ static int parse_tracepoint_event(const char **strp, struct perf_counter_attr *attr) { const char *evt_name; + char *flags; char sys_name[MAX_EVENT_LENGTH]; char id_buf[4]; int fd; @@ -400,6 +401,15 @@ static int parse_tracepoint_event(const char **strp, strncpy(sys_name, *strp, sys_length); sys_name[sys_length] = '\0'; evt_name = evt_name + 1; + + flags = strchr(evt_name, ':'); + if (flags) { + *flags = '\0'; + flags++; + if (!strncmp(flags, "record", strlen(flags))) + attr->sample_type |= PERF_SAMPLE_RAW; + } + evt_length = strlen(evt_name); if (evt_length >= MAX_EVENT_LENGTH) return 0;