From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757421AbdCUOsk (ORCPT ); Tue, 21 Mar 2017 10:48:40 -0400 Received: from mx1.redhat.com ([209.132.183.28]:49532 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757063AbdCUOsj (ORCPT ); Tue, 21 Mar 2017 10:48:39 -0400 DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 8719037F1F Authentication-Results: ext-mx05.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx05.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=jolsa@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 8719037F1F Date: Tue, 21 Mar 2017 15:48:36 +0100 From: Jiri Olsa To: Andi Kleen Cc: acme@kernel.org, jolsa@kernel.org, linux-kernel@vger.kernel.org, Andi Kleen Subject: Re: [PATCH 10/13] perf, tools, stat: Output JSON MetricExpr metric Message-ID: <20170321144836.GA6931@krava> References: <20170320201711.14142-1-andi@firstfloor.org> <20170320201711.14142-11-andi@firstfloor.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170320201711.14142-11-andi@firstfloor.org> User-Agent: Mutt/1.8.0 (2017-02-23) X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.29]); Tue, 21 Mar 2017 14:48:39 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Mar 20, 2017 at 01:17:08PM -0700, Andi Kleen wrote: > From: Andi Kleen > > 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. > > There is no attempt to automatically add the MetricExpr event, > if it is missing, however we suggest it to the user, because > the user tool doesn't have enough information to reliably > construct a group that is guaranteed to schedule. So we leave > that to the user. > > % perf stat -a -I 1000 -e '{unc_p_clockticks,unc_p_freq_max_os_cycles}' > 1.000147889 800,085,181 unc_p_clockticks > 1.000147889 93,126,241 unc_p_freq_max_os_cycles # 11.6 > 2.000448381 800,218,217 unc_p_clockticks > 2.000448381 142,516,095 unc_p_freq_max_os_cycles # 17.8 > 3.000639852 800,243,057 unc_p_clockticks > 3.000639852 162,292,689 unc_p_freq_max_os_cycles # 20.3 > > % perf stat -a -I 1000 -e '{unc_p_clockticks,unc_p_freq_max_os_cycles}' --metric-only > 1.000127077 0.9 > 2.000301436 0.7 > 3.000456379 0.0 The comment above suggest I'll see 'original event as description' in this example?? jirka