lkml.org 
[lkml]   [2014]   [Apr]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 14/17] perf tools: Fix metrics calculation with event qualifiers

    * 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


    \
     
     \ /
      Last update: 2014-04-14 17:21    [W:4.071 / U:0.024 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site