public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: kan.liang@intel.com
To: acme@kernel.org
Cc: jolsa@kernel.org, a.p.zijlstra@chello.nl, mingo@redhat.com,
	namhyung@kernel.org, ak@linux.intel.com,
	linux-kernel@vger.kernel.org, Kan Liang <kan.liang@intel.com>
Subject: [PATCH RFC 01/10] perf,tools: Add 'C' event/group modifier
Date: Tue, 22 Sep 2015 10:13:34 -0400	[thread overview]
Message-ID: <1442931223-51708-2-git-send-email-kan.liang@intel.com> (raw)
In-Reply-To: <1442931223-51708-1-git-send-email-kan.liang@intel.com>

From: Kan Liang <kan.liang@intel.com>

Add a new event/group modifier 'C' to mark the event which will be read
counter statistics during sampling.

Signed-off-by: Kan Liang <kan.liang@intel.com>
---
 tools/perf/util/evsel.h        | 1 +
 tools/perf/util/parse-events.c | 8 +++++++-
 tools/perf/util/parse-events.l | 2 +-
 3 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/tools/perf/util/evsel.h b/tools/perf/util/evsel.h
index 7906666..d017795 100644
--- a/tools/perf/util/evsel.h
+++ b/tools/perf/util/evsel.h
@@ -115,6 +115,7 @@ struct perf_evsel {
 	int			exclude_GH;
 	int			nr_members;
 	int			sample_read;
+	int			counter_read;
 	unsigned long		*per_pkg_mask;
 	struct perf_evsel	*leader;
 	char			*group_name;
diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c
index 61c2bc2..95b43a4 100644
--- a/tools/perf/util/parse-events.c
+++ b/tools/perf/util/parse-events.c
@@ -860,6 +860,7 @@ struct event_modifier {
 	int precise;
 	int exclude_GH;
 	int sample_read;
+	int counter_read;
 	int pinned;
 };
 
@@ -874,6 +875,7 @@ static int get_event_modifier(struct event_modifier *mod, char *str,
 	int eI = evsel ? evsel->attr.exclude_idle : 0;
 	int precise = evsel ? evsel->attr.precise_ip : 0;
 	int sample_read = 0;
+	int counter_read = 0;
 	int pinned = evsel ? evsel->attr.pinned : 0;
 
 	int exclude = eu | ek | eh;
@@ -911,6 +913,8 @@ static int get_event_modifier(struct event_modifier *mod, char *str,
 				eG = 1;
 		} else if (*str == 'S') {
 			sample_read = 1;
+		} else if (*str == 'C') {
+			counter_read = 1;
 		} else if (*str == 'D') {
 			pinned = 1;
 		} else
@@ -941,6 +945,7 @@ static int get_event_modifier(struct event_modifier *mod, char *str,
 	mod->precise = precise;
 	mod->exclude_GH = exclude_GH;
 	mod->sample_read = sample_read;
+	mod->counter_read = counter_read;
 	mod->pinned = pinned;
 
 	return 0;
@@ -955,7 +960,7 @@ static int check_modifier(char *str)
 	char *p = str;
 
 	/* The sizeof includes 0 byte as well. */
-	if (strlen(str) > (sizeof("ukhGHpppSDI") - 1))
+	if (strlen(str) > (sizeof("ukhGHpppSCDI") - 1))
 		return -1;
 
 	while (*p) {
@@ -994,6 +999,7 @@ int parse_events__modifier_event(struct list_head *list, char *str, bool add)
 		evsel->attr.exclude_idle   = mod.eI;
 		evsel->exclude_GH          = mod.exclude_GH;
 		evsel->sample_read         = mod.sample_read;
+		evsel->counter_read           = mod.counter_read;
 
 		if (perf_evsel__is_group_leader(evsel))
 			evsel->attr.pinned = mod.pinned;
diff --git a/tools/perf/util/parse-events.l b/tools/perf/util/parse-events.l
index 936d566..e6c5790 100644
--- a/tools/perf/util/parse-events.l
+++ b/tools/perf/util/parse-events.l
@@ -122,7 +122,7 @@ num_raw_hex	[a-fA-F0-9]+
 name		[a-zA-Z_*?][a-zA-Z0-9_*?.]*
 name_minus	[a-zA-Z_*?][a-zA-Z0-9\-_*?.]*
 /* If you add a modifier you need to update check_modifier() */
-modifier_event	[ukhpGHSDI]+
+modifier_event	[ukhpGHSCDI]+
 modifier_bp	[rwx]{1,3}
 
 %%
-- 
1.8.3.1


  reply	other threads:[~2015-09-22 21:30 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-22 14:13 [PATCH RFC 00/10] counter read during perf sampling kan.liang
2015-09-22 14:13 ` kan.liang [this message]
2015-09-22 14:13 ` [PATCH RFC 02/10] perf,tools: Enable counter statistic read for perf record kan.liang
2015-09-22 14:13 ` [PATCH RFC 03/10] perf,tools: don't validate counter read event kan.liang
2015-09-22 14:13 ` [PATCH RFC 04/10] perf,tools: New RECORD type PERF_RECORD_COUNTER_READ kan.liang
2015-09-22 14:13 ` [PATCH RFC 05/10] perf,tools: record counter statistics during sampling kan.liang
2015-09-22 14:13 ` [PATCH RFC 06/10] perf,tools: option to set counter read interval kan.liang
2015-09-23 18:55   ` Sukadev Bhattiprolu
2015-09-23 19:07     ` Liang, Kan
2015-09-22 14:13 ` [PATCH RFC 07/10] perf,report: handle PERF_RECORD_COUNTER_READ kan.liang
2015-09-22 14:13 ` [PATCH RFC 08/10] perf,tools: store counter val in events_stats kan.liang
2015-09-22 14:13 ` [PATCH RFC 09/10] perf,tools: show counter read result in studio kan.liang
2015-09-22 14:13 ` [PATCH RFC 10/10] perf,tools: show counter read result in tui browser title kan.liang
2015-09-24  8:19 ` [PATCH RFC 00/10] counter read during perf sampling Jiri Olsa
2015-09-24 19:47   ` Liang, Kan
2015-09-24 22:28     ` Jiri Olsa
2015-09-25 14:57       ` Liang, Kan
2015-09-27 19:57         ` Jiri Olsa
2015-09-28 15:11           ` Liang, Kan

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=1442931223-51708-2-git-send-email-kan.liang@intel.com \
    --to=kan.liang@intel.com \
    --cc=a.p.zijlstra@chello.nl \
    --cc=acme@kernel.org \
    --cc=ak@linux.intel.com \
    --cc=jolsa@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox