From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752539AbdIEScj (ORCPT ); Tue, 5 Sep 2017 14:32:39 -0400 Received: from mail.kernel.org ([198.145.29.99]:59794 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752490AbdIESce (ORCPT ); Tue, 5 Sep 2017 14:32:34 -0400 DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0241121B64 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=acme@kernel.org Date: Tue, 5 Sep 2017 15:32:30 -0300 From: Arnaldo Carvalho de Melo To: Andi Kleen Cc: jolsa@kernel.org, linux-kernel@vger.kernel.org, Andi Kleen Subject: Re: [PATCH v3 06/11] perf, tools, stat: Support JSON metrics in perf stat Message-ID: <20170905183230.GI22298@kernel.org> References: <20170831194036.30146-1-andi@firstfloor.org> <20170831194036.30146-7-andi@firstfloor.org> <20170904171128.GB22298@kernel.org> <20170904173725.GU2482@two.firstfloor.org> <20170905180919.GG22298@kernel.org> <20170905181612.GH22298@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170905181612.GH22298@kernel.org> X-Url: http://acmel.wordpress.com User-Agent: Mutt/1.8.3 (2017-05-23) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Em Tue, Sep 05, 2017 at 03:16:12PM -0300, Arnaldo Carvalho de Melo escreveu: > Em Tue, Sep 05, 2017 at 03:09:19PM -0300, Arnaldo Carvalho de Melo escreveu: > > Em Mon, Sep 04, 2017 at 10:37:25AM -0700, Andi Kleen escreveu: > > > On Mon, Sep 04, 2017 at 02:11:28PM -0300, Arnaldo Carvalho de Melo wrote: > > > > Em Thu, Aug 31, 2017 at 12:40:31PM -0700, Andi Kleen escreveu: > > > > > The actual JSON metrics are in a separate pull request. > > > > > > > > Yeah, I noticed when trying to test it :-\ > > > > > > > > Was this pull req submitted? > > > > > > Not yet. I was waiting to finish review. > > > > > > It makes perf crash until you apply the metricgroup patchkit first. > > > > > > But you can get it here > > > > > > git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-misc.git perf/intel-json-metrics-2 > > > > Ok, so I tried installing the Broadwell ones (one of my test machines) > > and got into: > > > > [root@jouet ~]# perf stat -M Pipeline flops > > bpf: builtin compilation failed: -95, try external compiler further info: [acme@jouet linux]$ perf stat -v -M GFLOPs sleep 1 Using CPUID GenuineIntel-6-3D metric expr ( 1*( fp_arith_inst_retired.scalar_single + fp_arith_inst_retired.scalar_double ) + 2* fp_arith_inst_retired.128b_packed_double + 4*( fp_arith_inst_retired.128b_packed_single + fp_arith_inst_retired.256b_packed_double ) + 8* fp_arith_inst_retired.256b_packed_single ) / 1000000000 / duration_time for GFLOPs found event fp_arith_inst_retired.scalar_single found event fp_arith_inst_retired.scalar_double found event fp_arith_inst_retired.128b_packed_double found event fp_arith_inst_retired.128b_packed_single found event fp_arith_inst_retired.256b_packed_double found event fp_arith_inst_retired.256b_packed_single found event duration_time adding {fp_arith_inst_retired.scalar_single,fp_arith_inst_retired.scalar_double,fp_arith_inst_retired.128b_packed_double,fp_arith_inst_retired.128b_packed_single,fp_arith_inst_retired.256b_packed_double,fp_arith_inst_retired.256b_packed_single,duration_time}:W fp_arith_inst_retired.scalar_single -> cpu/umask=0x2,period=2000003,event=0xc7/ fp_arith_inst_retired.scalar_double -> cpu/umask=0x1,period=2000003,event=0xc7/ fp_arith_inst_retired.128b_packed_double -> cpu/umask=0x4,period=2000003,event=0xc7/ fp_arith_inst_retired.128b_packed_single -> cpu/umask=0x8,period=2000003,event=0xc7/ fp_arith_inst_retired.256b_packed_double -> cpu/umask=0x10,period=2000003,event=0xc7/ fp_arith_inst_retired.256b_packed_single -> cpu/umask=0x20,period=2000003,event=0xc7/ Cannot set up events {fp_arith_inst_retired.scalar_single,fp_arith_inst_retired.scalar_double,fp_arith_inst_retired.128b_packed_double,fp_arith_inst_retired.128b_packed_single,fp_arith_inst_retired.256b_packed_double,fp_arith_inst_retired.256b_packed_single,duration_time}:W Usage: perf stat [] [] -M, --metrics monitor specified metrics or metric groups (separated by ,) [acme@jouet linux]$ Humm, so it uses that duration_time and that gets added only later? /me tries with all the patches: Yeah: [acme@jouet linux]$ perf stat -M GFLOPs sleep 1 Performance counter stats for 'sleep 1': 0 fp_arith_inst_retired.scalar_single:u 3 fp_arith_inst_retired.scalar_double:u 0 fp_arith_inst_retired.128b_packed_double:u 0 fp_arith_inst_retired.128b_packed_single:u 0 fp_arith_inst_retired.256b_packed_double:u (40.86%) fp_arith_inst_retired.256b_packed_single:u (0.00%) 0 duration_time:u 1.003398909 seconds time elapsed [acme@jouet linux]$ With --metric-only I get nothing, what am I doing wrong? [acme@jouet linux]$ perf stat -M GFLOPs --metric-only sleep 1 Performance counter stats for 'sleep 1': GFLOPs 1.003217768 seconds time elapsed [acme@jouet linux]$ I just rebuilt the tools completely from scratch, deleting the build dir, to see if this was some build artifact, didn't help, I still get just the time elapsed. Now with -v: [acme@jouet linux]$ perf stat -v -M GFLOPs --metric-only sleep 1 Using CPUID GenuineIntel-6-3D metric expr ( 1*( fp_arith_inst_retired.scalar_single + fp_arith_inst_retired.scalar_double ) + 2* fp_arith_inst_retired.128b_packed_double + 4*( fp_arith_inst_retired.128b_packed_single + fp_arith_inst_retired.256b_packed_double ) + 8* fp_arith_inst_retired.256b_packed_single ) / 1000000000 / duration_time for GFLOPs found event fp_arith_inst_retired.scalar_single found event fp_arith_inst_retired.scalar_double found event fp_arith_inst_retired.128b_packed_double found event fp_arith_inst_retired.128b_packed_single found event fp_arith_inst_retired.256b_packed_double found event fp_arith_inst_retired.256b_packed_single found event duration_time adding {fp_arith_inst_retired.scalar_single,fp_arith_inst_retired.scalar_double,fp_arith_inst_retired.128b_packed_double,fp_arith_inst_retired.128b_packed_single,fp_arith_inst_retired.256b_packed_double,fp_arith_inst_retired.256b_packed_single,duration_time}:W fp_arith_inst_retired.scalar_single -> cpu/umask=0x2,period=2000003,event=0xc7/ fp_arith_inst_retired.scalar_double -> cpu/umask=0x1,period=2000003,event=0xc7/ fp_arith_inst_retired.128b_packed_double -> cpu/umask=0x4,period=2000003,event=0xc7/ fp_arith_inst_retired.128b_packed_single -> cpu/umask=0x8,period=2000003,event=0xc7/ fp_arith_inst_retired.256b_packed_double -> cpu/umask=0x10,period=2000003,event=0xc7/ fp_arith_inst_retired.256b_packed_single -> cpu/umask=0x20,period=2000003,event=0xc7/ Warning: kernel.perf_event_paranoid=2, trying to fall back to excluding kernel samples Warning: kernel.perf_event_paranoid=2, trying to fall back to excluding kernel samples Warning: kernel.perf_event_paranoid=2, trying to fall back to excluding kernel samples Warning: kernel.perf_event_paranoid=2, trying to fall back to excluding kernel samples Warning: kernel.perf_event_paranoid=2, trying to fall back to excluding kernel samples Weak group for fp_arith_inst_retired.scalar_single:u/7 failed Warning: kernel.perf_event_paranoid=2, trying to fall back to excluding kernel samples Warning: kernel.perf_event_paranoid=2, trying to fall back to excluding kernel samples fp_arith_inst_retired.scalar_single:u: 0 2137416 524337 fp_arith_inst_retired.scalar_double:u: 0 1525387 1525387 fp_arith_inst_retired.128b_packed_double:u: 0 2429065 2429065 fp_arith_inst_retired.128b_packed_single:u: 0 2429065 2429065 fp_arith_inst_retired.256b_packed_double:u: 0 2429065 1904728 fp_arith_inst_retired.256b_packed_single:u: 0 2429065 903678 duration_time:u: 0 2394375 2394375 Performance counter stats for 'sleep 1': fp_arith_inst_retired.scalar_single not found GFLOPs fp_arith_inst_retired.scalar_single not found 1.005367355 seconds time elapsed [acme@jouet linux]$ We need to improve these messages... As root for that Summary more: [acme@jouet linux]$ sudo ~acme/bin/perf stat -M Summary --metric-only -a sleep 1 Performance counter stats for 'system wide': Instructions CPI CLKS CPU_Utilization GFLOPs SMT_2T_Utilization Kernel_Utilization 134707420.0 0.0 698757419.0 0.1 0.0 0.3 0.4 1.003365814 seconds time elapsed [acme@jouet linux]$ - Arnaldo