From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joerg Roedel Subject: [PATCH 3/3] perf, tools: Add support for guest/host-only profiling Date: Tue, 10 May 2011 16:35:32 +0200 Message-ID: <1305038132-5080-4-git-send-email-joerg.roedel@amd.com> References: <1305038132-5080-1-git-send-email-joerg.roedel@amd.com> Mime-Version: 1.0 Content-Type: text/plain Cc: , , Joerg Roedel To: Peter Zijlstra , Paul Mackerras , Ingo Molnar , Arnaldo Carvalho de Melo Return-path: In-Reply-To: <1305038132-5080-1-git-send-email-joerg.roedel@amd.com> Sender: linux-kernel-owner@vger.kernel.org List-Id: kvm.vger.kernel.org To restrict a counter to either host or guest mode this patch introduces two new event modifiers: G and H. With G the counter is configured in guest-only mode and with H in host-only mode. Signed-off-by: Joerg Roedel --- tools/perf/util/parse-events.c | 10 +++++++++- 1 files changed, 9 insertions(+), 1 deletions(-) diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c index 952b4ae..21039d2 100644 --- a/tools/perf/util/parse-events.c +++ b/tools/perf/util/parse-events.c @@ -723,7 +723,7 @@ parse_event_modifier(const char **strp, struct perf_event_attr *attr) { const char *str = *strp; int exclude = 0; - int eu = 0, ek = 0, eh = 0, precise = 0; + int eu = 0, ek = 0, eh = 0, eg = 0, ehst = 0, precise = 0; if (*str++ != ':') return 0; @@ -740,6 +740,12 @@ parse_event_modifier(const char **strp, struct perf_event_attr *attr) if (!exclude) exclude = eu = ek = eh = 1; eh = 0; + } else if (*str == 'G') { + eg = 0; + ehst = 1; + } else if (*str == 'H') { + eg = 1; + ehst = 0; } else if (*str == 'p') { precise++; } else @@ -753,6 +759,8 @@ parse_event_modifier(const char **strp, struct perf_event_attr *attr) attr->exclude_kernel = ek; attr->exclude_hv = eh; attr->precise_ip = precise; + attr->exclude_host = ehst; + attr->exclude_guest = eg; return 1; } return 0; -- 1.7.4.1