lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20170208113134.GE10639@krava>
Date:   Wed, 8 Feb 2017 12:31:34 +0100
From:   Jiri Olsa <jolsa@...hat.com>
To:     Andi Kleen <andi@...stfloor.org>
Cc:     acme@...nel.org, jolsa@...nel.org, linux-kernel@...r.kernel.org,
        Andi Kleen <ak@...ux.intel.com>
Subject: Re: [PATCH 10/10] perf, tools, stat: Output JSON MetricExpr metric

On Fri, Jan 27, 2017 at 06:03:45PM -0800, Andi Kleen wrote:
> From: Andi Kleen <ak@...ux.intel.com>
> 
> Add generic infrastructure to perf stat to output ratios for "MetricExpr"
> entries in the event lists. Many events are more useful as ratios
> than in raw form, typically some count in relation to total ticks.
> 
> Transfer the MetricExpr information from the alias to the evsel.
> 
> We mark the events that need to be collected for MetricExpr, and also
> link the events using them with a pointer. The code is careful
> to always prefer the right event in the same group to minimize
> multiplexing errors. At the moment only a single relation is supported.
> 
> Then add a rblist to the stat shadow code that remembers stats based
> on the cpu and context.
> 
> Then finally update and retrieve and print these values similarly to the
> existing hardcoded perf metrics. We use the simple expression parser
> added earlier to evaluate the expression.
> 
> Normally we just output the result without further commentary,
> but for --metric-only this would lead to empty columns. So for this
> case use the original event as description.
> 
> So far there is no attempt to automatically add the MetricExpr event,
> if it is missing, however we suggest it to the user.
> 
> $ perf stat -a -I 1000 -e '{unc_p_clockticks,unc_p_freq_max_os_cycles}'
>      1.000228813        800,139,950      unc_p_clockticks
>      1.000228813        789,833,783      unc_p_freq_max_os_cycles  #     98.7
>      2.000654229        800,308,990      unc_p_clockticks
>      2.000654229        396,214,238      unc_p_freq_max_os_cycles  #     49.5

[jolsa@...va perf]$ ./perf stat -a -I 1000 -e '{unc_p_clockticks,unc_p_freq_max_os_cycles}'
invalid or unsupported event: '{unc_p_clockticks,unc_p_freq_max_os_cycles}'
Run 'perf list' for a list of valid events

could you show an example of the MetricExpr?

it's part of the event record, what if you wanted to have 2 or more metrics defined for event?

who defines those expressions?

what if you dont provide the necessary events needed for the expression?

shouldnt we do it the other way around? like pick an expression
we are interested in and perf will configure the needful..

> 
> $ perf stat -a -I 1000 -e '{unc_p_clockticks,unc_p_freq_max_os_cycles}' --metric-only
>      1.000206740     48.0
>      2.000451543     48.1

how does user know what those number stand for?

is there a way for user to display the metric expression?

it's still feels to me like a hack without much concept behind

jirka

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ