All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ingo Molnar <mingo@kernel.org>
To: Jiri Olsa <jolsa@redhat.com>
Cc: linux-kernel@vger.kernel.org, Andi Kleen <ak@linux.intel.com>,
	Arnaldo Carvalho de Melo <acme@infradead.org>
Subject: Re: [PATCH 14/17] perf tools: Fix metrics calculation with event qualifiers
Date: Mon, 14 Apr 2014 16:38:05 +0200	[thread overview]
Message-ID: <20140414143805.GA22659@gmail.com> (raw)
In-Reply-To: <1397485061-17215-15-git-send-email-jolsa@redhat.com>


* Jiri Olsa <jolsa@redhat.com> wrote:

> From: Andi Kleen <ak@linux.intel.com>
> 
> Currently in perf IPC and other metrics cannot be directly shown
> separately for both user and kernel in a single run. The problem was
> that the metrics matching code did not check event qualifiers.
> 
> With this patch the following case works correctly.
> 
> % perf stat -e cycles:k,cycles:u,instructions:k,instructions:u true
> 
>  Performance counter stats for 'true':
> 
>            531,718      cycles:k
>            203,895      cycles:u
>            338,151      instructions:k            #    0.64  insns per cycle
>            105,961      instructions:u            #    0.52  insns per cycle
> 
>        0.002989739 seconds time elapsed
> 
> Previously it would misreport the ratios because they were matching
> the wrong value.
> 
> The patch is fairly big, but quite mechanic as it just
> adds context indexes everywhere.
> 
> I didn't support Hypervisor. It's not clear it's worth it.

> +static int evsel_context(struct perf_evsel *evsel)
> +{
> +	if (evsel->attr.exclude_kernel)
> +		return CTX_USER;
> +	if (evsel->attr.exclude_user)
> +		return CTX_KERNEL;
> +	/* Handle hypervisor too? */
> +	return CTX_ALL;

This fix is incomplete, as there are a whole lot of other cases:

                                exclude_user   :  1, /* don't count user      */
                                exclude_kernel :  1, /* ditto kernel          */
                                exclude_hv     :  1, /* ditto hypervisor      */
                                exclude_idle   :  1, /* don't count when idle */

                                exclude_host   :  1, /* don't count in host   */
                                exclude_guest  :  1, /* don't count in guest  */

Many of which can be triggered via current event selectors.

Thanks,

	Ingo

  reply	other threads:[~2014-04-14 14:38 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-14 14:17 [GIT PULL v3 00/17] perf/core fixes Jiri Olsa
2014-04-14 14:17 ` [PATCH 01/17] perf top: Fix documentation of invalid -s option Jiri Olsa
2014-04-14 14:17 ` [PATCH 02/17] tools lib traceevent: Print event name when show warning if possible Jiri Olsa
2014-04-14 14:17 ` [PATCH 03/17] tools lib traceevent: Do not call warning() directly Jiri Olsa
2014-04-14 14:17 ` [PATCH 04/17] perf callchains: Disable unwind libraries when libelf isn't found Jiri Olsa
2014-04-14 14:17 ` [PATCH 05/17] MAINTAINERS: Change e-mail to kernel.org one Jiri Olsa
2014-04-14 14:17 ` [PATCH 06/17] perf tools: Pick up libdw without explicit LIBDW_DIR Jiri Olsa
2014-04-14 14:17 ` [PATCH 07/17] perf probe: Fix --line option behavior Jiri Olsa
2014-04-14 14:17 ` [PATCH 08/17] perf probe: Fix to handle errors in line_range searching Jiri Olsa
2014-04-14 14:17 ` [PATCH 09/17] perf probe: Use dwarf_getcfi_elf() instead of dwarf_getcfi() Jiri Olsa
2014-04-14 14:17 ` [PATCH 10/17] perf bench: Update manpage to mention numa and futex Jiri Olsa
2014-04-14 14:17 ` [PATCH 11/17] perf bench: Fix segfault at the end of an 'all' execution Jiri Olsa
2014-04-14 14:17 ` [PATCH 12/17] perf bench: Set more defaults in the 'numa' suite Jiri Olsa
2014-04-14 14:17 ` [PATCH 13/17] perf stat: Initialize statistics correctly Jiri Olsa
2014-04-14 14:17 ` [PATCH 14/17] perf tools: Fix metrics calculation with event qualifiers Jiri Olsa
2014-04-14 14:38   ` Ingo Molnar [this message]
2014-04-14 14:17 ` [PATCH 15/17] perf tools: Fix double free in perf test 21 (code-reading.c) Jiri Olsa
2014-04-14 14:17 ` [PATCH 16/17] perf machine: Search for modules in %s/lib/modules/%s Jiri Olsa
2014-04-14 14:17 ` [PATCH 17/17] perf tools: Instead of redirecting flex output, use -o Jiri Olsa
2014-04-14 14:42 ` [GIT PULL v3 00/17] perf/core fixes Ingo Molnar
2014-04-14 14:52   ` 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=20140414143805.GA22659@gmail.com \
    --to=mingo@kernel.org \
    --cc=acme@infradead.org \
    --cc=ak@linux.intel.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.