Received: by 2002:a05:6a10:6744:0:0:0:0 with SMTP id w4csp3775654pxu; Mon, 19 Oct 2020 23:21:13 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwu3pws/Buj6TZUm96qYgMRTu+1DRcoBnq4rjlSznZamA51ev7Cj4ke41/IDtnMmNeVMsYO X-Received: by 2002:aa7:ccd7:: with SMTP id y23mr1158010edt.106.1603174873201; Mon, 19 Oct 2020 23:21:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1603174873; cv=none; d=google.com; s=arc-20160816; b=KxkiGsE+TWzoCXPnp72rXVja1wesxTRrsl0EYcVIdrJ4z0/s4CYjJhWDvTcy85KjXt Ej3AZvaVQFuy2EKImTaiogBOMs4S6lNFcVW13J2dyhZadQ1aoErH6DzHHH59TCxXrwN7 BXJDcOBsC2oyNeBtofquTM5tdtPBO9TJydD/kE5PRN9Mr4ez7e7mLzeC+HQw34H8IMiX Apsi24NszbfMN2Rspvg8BPDIr650Y3Kq+mR21GXSutUahTVabT/4QhQctlZtgH1uge5/ JMsSno4CXytcIvhhBdPaFDG5pBg4M2hXDul2XGAMIwmfld3/DYkth/8aAsWsJqS/3msR X8/Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:content-language :in-reply-to:mime-version:user-agent:date:message-id:from:references :cc:to:subject; bh=LORKAx90ojbWea6WBJzd8RdulnCsO1GJMiYMQKDqzFg=; b=luKChV/6jwnFEBm3Pxs5+sdKk2qIXiANeeCKflZB1Tq/O90FHk9kEyjSB+8tqx1CjC +Vd7/vTI8kls6s/FYVGZ7L/PzQKt7wPfLFFp8/oxLPmfZBUmxGiZ0MWgFAvS3HZ2HadC sIlg37Bkj7RxckxjqEpH3kYKV7wPgMiy01WVbjbLGv6P3z9A1VAw2CCxeNWVh+Tue808 htemc/Zo8q3S4q6iCE+obcjyNisvTqpzDkpZP0zmfSETQEUAmPavFmLkUbKKGqRLQo8x s57fMnpn/t8q3FErfnMBn4PmTl7BxAktHWjnv5XldIsnUfZ1PdF6xj4pD5Av+n4dhJ4y ziow== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id fx6si675326ejb.613.2020.10.19.23.20.36; Mon, 19 Oct 2020 23:21:13 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731018AbgJSRII (ORCPT + 99 others); Mon, 19 Oct 2020 13:08:08 -0400 Received: from lhrrgout.huawei.com ([185.176.76.210]:2994 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1730938AbgJSRII (ORCPT ); Mon, 19 Oct 2020 13:08:08 -0400 Received: from lhreml724-chm.china.huawei.com (unknown [172.18.7.108]) by Forcepoint Email with ESMTP id 24118B690575A8B28DCE; Mon, 19 Oct 2020 18:08:05 +0100 (IST) Received: from [127.0.0.1] (10.47.6.70) by lhreml724-chm.china.huawei.com (10.201.108.75) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1913.5; Mon, 19 Oct 2020 18:08:03 +0100 Subject: Re: [perf metricgroup] fcc9c5243c: perf-sanity-tests.Parse_and_process_metrics.fail To: Ian Rogers CC: kernel test robot , Jin Yao , Andi Kleen , Arnaldo Carvalho de Melo , Will Deacon , Mark Rutland , Jiri Olsa , Leo Yan , Peter Zijlstra , Ingo Molnar , Alexander Shishkin , Namhyung Kim , Mathieu Poirier , Linuxarm , LKML , Linux ARM , Joakim Zhang , Zhangshaokun , James Clark , "linux-imx@nxp.com" , 0day robot , "lkp@lists.01.org" References: <1602152121-240367-10-git-send-email-john.garry@huawei.com> <20201018085031.GK11647@shao2-debian> <602e6bb8-a4ac-fae7-ed61-edf252e08d9a@huawei.com> From: John Garry Message-ID: Date: Mon, 19 Oct 2020 18:04:49 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.1.2 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset="utf-8"; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [10.47.6.70] X-ClientProxiedBy: lhreml725-chm.china.huawei.com (10.201.108.76) To lhreml724-chm.china.huawei.com (10.201.108.75) X-CFilter-Loop: Reflected Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 19/10/2020 17:20, Ian Rogers wrote: >>> n >> So this named patch ("perf metricgroup: Hack a fix for aliases...") is >> breaking test #67 on my machine also, which is a broadwell. > Thanks for taking a look John. If you want help you can send the > output of "perf test 67 -vvv" to me. It is possible Broadwell has > similar glitches in the json to Skylake. I tested the original test on > server parts as I can access them as cloud machines. Here it is: john@localhost:~/kernel-dev7/tools/perf> ./perf test -vv 67 Couldn't bump rlimit(MEMLOCK), failures may take place when creating BPF maps, etc 67: Parse and process metrics : --- start --- test child forked, pid 24433 metric expr inst_retired.any / cpu_clk_unhalted.thread for IPC parsing metric: inst_retired.any / cpu_clk_unhalted.thread found event inst_retired.any found event cpu_clk_unhalted.thread adding {inst_retired.any,cpu_clk_unhalted.thread}:W Attempting to add event pmu 'inst_retired.any' with '' that may result in non-fatal errors Attempting to add event pmu 'cpu_clk_unhalted.thread' with '' that may result in non-fatal errors parsing metric: inst_retired.any / cpu_clk_unhalted.thread lookup: is_ref 0, counted 0, val 300.000000: inst_retired.any lookup: is_ref 0, counted 101, val 200.000000: cpu_clk_unhalted.thread metric expr idq_uops_not_delivered.core / (4 * (( ( cpu_clk_unhalted.thread / 2 ) * ( 1 + cpu_clk_unhalted.one_thread_active / cpu_clk_unhalted.ref_xclk ) ))) for Frontend_Bound_SMT parsing metric: idq_uops_not_delivered.core / (4 * (( ( cpu_clk_unhalted.thread / 2 ) * ( 1 + cpu_clk_unhalted.one_thread_active / cpu_clk_unhalted.ref_xclk ) ))) found event cpu_clk_unhalted.one_thread_active found event cpu_clk_unhalted.ref_xclk found event idq_uops_not_delivered.core found event cpu_clk_unhalted.thread adding {cpu_clk_unhalted.one_thread_active,cpu_clk_unhalted.ref_xclk,idq_uops_not_delivered.core,cpu_clk_unhalted.thread}:W Attempting to add event pmu 'cpu_clk_unhalted.one_thread_active' with '' that may result in non-fatal errors Attempting to add event pmu 'cpu_clk_unhalted.ref_xclk' with '' that may result in non-fatal errors Attempting to add event pmu 'idq_uops_not_delivered.core' with '' that may result in non-fatal errors Attempting to add event pmu 'cpu_clk_unhalted.thread' with '' that may result in non-fatal errors parsing metric: idq_uops_not_delivered.core / (4 * (( ( cpu_clk_unhalted.thread / 2 ) * ( 1 + cpu_clk_unhalted.one_thread_active / cpu_clk_unhalted.ref_xclk ) ))) lookup: is_ref 0, counted 46, val 300.000000: idq_uops_not_delivered.core lookup: is_ref 0, counted 0, val 200.000000: cpu_clk_unhalted.thread lookup: is_ref 0, counted 216, val 400.000000: cpu_clk_unhalted.one_thread_active lookup: is_ref 0, counted 46, val 600.000000: cpu_clk_unhalted.ref_xclk metric expr (dcache_miss_cpi + icache_miss_cycles) for cache_miss_cycles parsing metric: (dcache_miss_cpi + icache_miss_cycles) metric expr l1d\-loads\-misses / inst_retired.any for dcache_miss_cpi parsing metric: l1d\-loads\-misses / inst_retired.any metric expr l1i\-loads\-misses / inst_retired.any for icache_miss_cycles parsing metric: l1i\-loads\-misses / inst_retired.any found event inst_retired.any found event l1i-loads-misses found event l1d-loads-misses adding {inst_retired.any,l1i-loads-misses,l1d-loads-misses}:W Attempting to add event pmu 'inst_retired.any' with '' that may result in non-fatal errors adding ref metric icache_miss_cycles: l1i\-loads\-misses / inst_retired.any adding ref metric dcache_miss_cpi: l1d\-loads\-misses / inst_retired.any parsing metric: (dcache_miss_cpi + icache_miss_cycles) lookup: is_ref 1, counted 0, val 0.000000: dcache_miss_cpi processing metric: dcache_miss_cpi ENTRY parsing metric: l1d\-loads\-misses / inst_retired.any lookup: is_ref 0, counted 105, val 300.000000: l1d-loads-misses lookup: is_ref 0, counted 46, val 400.000000: inst_retired.any processing metric: dcache_miss_cpi EXIT: 0.750000 lookup: is_ref 1, counted 0, val 0.000000: icache_miss_cycles processing metric: icache_miss_cycles ENTRY parsing metric: l1i\-loads\-misses / inst_retired.any lookup: is_ref 0, counted 216, val 200.000000: l1i-loads-misses lookup: is_ref 0, counted 46, val 400.000000: inst_retired.any processing metric: icache_miss_cycles EXIT: 0.500000 metric expr d_ratio(dcache_l2_all_hits, dcache_l2_all) for DCache_L2_Hits parsing metric: d_ratio(dcache_l2_all_hits, dcache_l2_all) metric expr l2_rqsts.demand_data_rd_hit + l2_rqsts.pf_hit + l2_rqsts.rfo_hit for DCache_L2_All_Hits parsing metric: l2_rqsts.demand_data_rd_hit + l2_rqsts.pf_hit + l2_rqsts.rfo_hit metric expr dcache_l2_all_hits + dcache_l2_all_miss for DCache_L2_All parsing metric: dcache_l2_all_hits + dcache_l2_all_miss metric expr l2_rqsts.demand_data_rd_hit + l2_rqsts.pf_hit + l2_rqsts.rfo_hit for DCache_L2_All_Hits parsing metric: l2_rqsts.demand_data_rd_hit + l2_rqsts.pf_hit + l2_rqsts.rfo_hit metric expr max(l2_rqsts.all_demand_data_rd - l2_rqsts.demand_data_rd_hit, 0) + l2_rqsts.pf_miss + l2_rqsts.rfo_miss for DCache_L2_All_Miss parsing metric: max(l2_rqsts.all_demand_data_rd - l2_rqsts.demand_data_rd_hit, 0) + l2_rqsts.pf_miss + l2_rqsts.rfo_miss found event l2_rqsts.rfo_miss found event l2_rqsts.pf_miss found event l2_rqsts.rfo_hit found event l2_rqsts.demand_data_rd_hit found event l2_rqsts.all_demand_data_rd found event l2_rqsts.pf_hit adding {l2_rqsts.rfo_miss,l2_rqsts.pf_miss,l2_rqsts.rfo_hit,l2_rqsts.demand_data_rd_hit,l2_rqsts.all_demand_data_rd,l2_rqsts.pf_hit}:W Attempting to add event pmu 'l2_rqsts.rfo_miss' with '' that may result in non-fatal errors Attempting to add event pmu 'l2_rqsts.pf_miss' with '' that may result in non-fatal errors Attempting to add event pmu 'l2_rqsts.rfo_hit' with '' that may result in non-fatal errors Attempting to add event pmu 'l2_rqsts.demand_data_rd_hit' with '' that may result in non-fatal errors Attempting to add event pmu 'l2_rqsts.all_demand_data_rd' with '' that may result in non-fatal errors Attempting to add event pmu 'l2_rqsts.pf_hit' with '' that may result in non-fatal errors adding ref metric DCache_L2_All_Miss: max(l2_rqsts.all_demand_data_rd - l2_rqsts.demand_data_rd_hit, 0) + l2_rqsts.pf_miss + l2_rqsts.rfo_miss adding ref metric DCache_L2_All_Hits: l2_rqsts.demand_data_rd_hit + l2_rqsts.pf_hit + l2_rqsts.rfo_hit adding ref metric DCache_L2_All: dcache_l2_all_hits + dcache_l2_all_miss adding ref metric DCache_L2_All_Hits: l2_rqsts.demand_data_rd_hit + l2_rqsts.pf_hit + l2_rqsts.rfo_hit parsing metric: d_ratio(dcache_l2_all_hits, dcache_l2_all) lookup: is_ref 1, counted 0, val 0.000000: dcache_l2_all_hits processing metric: dcache_l2_all_hits ENTRY parsing metric: l2_rqsts.demand_data_rd_hit + l2_rqsts.pf_hit + l2_rqsts.rfo_hit lookup: is_ref 0, counted 8, val 100.000000: l2_rqsts.demand_data_rd_hit lookup: is_ref 0, counted 224, val 200.000000: l2_rqsts.pf_hit lookup: is_ref 0, counted 46, val 300.000000: l2_rqsts.rfo_hit processing metric: dcache_l2_all_hits EXIT: 600.000000 lookup: is_ref 1, counted 0, val 0.000000: dcache_l2_all processing metric: dcache_l2_all ENTRY parsing metric: dcache_l2_all_hits + dcache_l2_all_miss lookup: is_ref 1, counted 1, val 600.000000: dcache_l2_all_hits lookup: is_ref 1, counted 0, val 0.000000: dcache_l2_all_miss processing metric: dcache_l2_all_miss ENTRY parsing metric: max(l2_rqsts.all_demand_data_rd - l2_rqsts.demand_data_rd_hit, 0) + l2_rqsts.pf_miss + l2_rqsts.rfo_miss lookup: is_ref 0, counted 112, val 400.000000: l2_rqsts.all_demand_data_rd lookup: is_ref 0, counted 8, val 100.000000: l2_rqsts.demand_data_rd_hit lookup: is_ref 0, counted 100, val 500.000000: l2_rqsts.pf_miss lookup: is_ref 0, counted 120, val 600.000000: l2_rqsts.rfo_miss processing metric: dcache_l2_all_miss EXIT: 1400.000000 processing metric: dcache_l2_all EXIT: 2000.000000 metric expr d_ratio(dcache_l2_all_miss, dcache_l2_all) for DCache_L2_Misses parsing metric: d_ratio(dcache_l2_all_miss, dcache_l2_all) metric expr max(l2_rqsts.all_demand_data_rd - l2_rqsts.demand_data_rd_hit, 0) + l2_rqsts.pf_miss + l2_rqsts.rfo_miss for DCache_L2_All_Miss parsing metric: max(l2_rqsts.all_demand_data_rd - l2_rqsts.demand_data_rd_hit, 0) + l2_rqsts.pf_miss + l2_rqsts.rfo_miss metric expr dcache_l2_all_hits + dcache_l2_all_miss for DCache_L2_All parsing metric: dcache_l2_all_hits + dcache_l2_all_miss metric expr l2_rqsts.demand_data_rd_hit + l2_rqsts.pf_hit + l2_rqsts.rfo_hit for DCache_L2_All_Hits parsing metric: l2_rqsts.demand_data_rd_hit + l2_rqsts.pf_hit + l2_rqsts.rfo_hit metric expr max(l2_rqsts.all_demand_data_rd - l2_rqsts.demand_data_rd_hit, 0) + l2_rqsts.pf_miss + l2_rqsts.rfo_miss for DCache_L2_All_Miss parsing metric: max(l2_rqsts.all_demand_data_rd - l2_rqsts.demand_data_rd_hit, 0) + l2_rqsts.pf_miss + l2_rqsts.rfo_miss found event l2_rqsts.rfo_miss found event l2_rqsts.pf_miss found event l2_rqsts.rfo_hit found event l2_rqsts.demand_data_rd_hit found event l2_rqsts.all_demand_data_rd found event l2_rqsts.pf_hit adding {l2_rqsts.rfo_miss,l2_rqsts.pf_miss,l2_rqsts.rfo_hit,l2_rqsts.demand_data_rd_hit,l2_rqsts.all_demand_data_rd,l2_rqsts.pf_hit}:W Attempting to add event pmu 'l2_rqsts.rfo_miss' with '' that may result in non-fatal errors Attempting to add event pmu 'l2_rqsts.pf_miss' with '' that may result in non-fatal errors Attempting to add event pmu 'l2_rqsts.rfo_hit' with '' that may result in non-fatal errors Attempting to add event pmu 'l2_rqsts.demand_data_rd_hit' with '' that may result in non-fatal errors Attempting to add event pmu 'l2_rqsts.all_demand_data_rd' with '' that may result in non-fatal errors Attempting to add event pmu 'l2_rqsts.pf_hit' with '' that may result in non-fatal errors adding ref metric DCache_L2_All_Miss: max(l2_rqsts.all_demand_data_rd - l2_rqsts.demand_data_rd_hit, 0) + l2_rqsts.pf_miss + l2_rqsts.rfo_miss adding ref metric DCache_L2_All_Hits: l2_rqsts.demand_data_rd_hit + l2_rqsts.pf_hit + l2_rqsts.rfo_hit adding ref metric DCache_L2_All: dcache_l2_all_hits + dcache_l2_all_miss adding ref metric DCache_L2_All_Miss: max(l2_rqsts.all_demand_data_rd - l2_rqsts.demand_data_rd_hit, 0) + l2_rqsts.pf_miss + l2_rqsts.rfo_miss parsing metric: d_ratio(dcache_l2_all_miss, dcache_l2_all) lookup: is_ref 1, counted 0, val 0.000000: dcache_l2_all_miss processing metric: dcache_l2_all_miss ENTRY parsing metric: max(l2_rqsts.all_demand_data_rd - l2_rqsts.demand_data_rd_hit, 0) + l2_rqsts.pf_miss + l2_rqsts.rfo_miss lookup: is_ref 0, counted 128, val 400.000000: l2_rqsts.all_demand_data_rd lookup: is_ref 0, counted 224, val 100.000000: l2_rqsts.demand_data_rd_hit lookup: is_ref 0, counted 112, val 500.000000: l2_rqsts.pf_miss lookup: is_ref 0, counted 0, val 600.000000: l2_rqsts.rfo_miss processing metric: dcache_l2_all_miss EXIT: 1400.000000 lookup: is_ref 1, counted 0, val 0.000000: dcache_l2_all processing metric: dcache_l2_all ENTRY parsing metric: dcache_l2_all_hits + dcache_l2_all_miss lookup: is_ref 1, counted 0, val 0.000000: dcache_l2_all_hits processing metric: dcache_l2_all_hits ENTRY parsing metric: l2_rqsts.demand_data_rd_hit + l2_rqsts.pf_hit + l2_rqsts.rfo_hit lookup: is_ref 0, counted 224, val 100.000000: l2_rqsts.demand_data_rd_hit lookup: is_ref 0, counted 0, val 200.000000: l2_rqsts.pf_hit lookup: is_ref 0, counted 152, val 300.000000: l2_rqsts.rfo_hit processing metric: dcache_l2_all_hits EXIT: 600.000000 lookup: is_ref 1, counted 1, val 1400.000000: dcache_l2_all_miss processing metric: dcache_l2_all EXIT: 2000.000000 metric expr ipc + m2 for M1 parsing metric: ipc + m2 metric expr ipc + m1 for M2 parsing metric: ipc + m1 metric expr ipc + m2 for M1 parsing metric: ipc + m2 failed: recursion detected for m2 metric expr 1/m3 for M3 parsing metric: 1/m3 metric expr 1/m3 for M3 parsing metric: 1/m3 failed: recursion detected for m3 metric expr inst_retired.any / cpu_clk_unhalted.thread for IPC parsing metric: inst_retired.any / cpu_clk_unhalted.thread metric expr (dcache_miss_cpi + icache_miss_cycles) for cache_miss_cycles parsing metric: (dcache_miss_cpi + icache_miss_cycles) metric expr l1d\-loads\-misses / inst_retired.any for dcache_miss_cpi parsing metric: l1d\-loads\-misses / inst_retired.any metric expr l1i\-loads\-misses / inst_retired.any for icache_miss_cycles parsing metric: l1i\-loads\-misses / inst_retired.any found event inst_retired.any found event cpu_clk_unhalted.thread found event inst_retired.any found event l1i-loads-misses found event l1d-loads-misses adding {inst_retired.any,cpu_clk_unhalted.thread}:W,{inst_retired.any,l1i-loads-misses,l1d-loads-misses}:W Attempting to add event pmu 'inst_retired.any' with '' that may result in non-fatal errors Attempting to add event pmu 'cpu_clk_unhalted.thread' with '' that may result in non-fatal errors Attempting to add event pmu 'inst_retired.any' with '' that may result in non-fatal errors parsing metric: inst_retired.any / cpu_clk_unhalted.thread lookup: is_ref 0, counted 64, val 800.000000: inst_retired.any lookup: is_ref 0, counted 32, val 200.000000: cpu_clk_unhalted.thread adding ref metric icache_miss_cycles: l1i\-loads\-misses / inst_retired.any adding ref metric dcache_miss_cpi: l1d\-loads\-misses / inst_retired.any parsing metric: (dcache_miss_cpi + icache_miss_cycles) lookup: is_ref 1, counted 0, val 0.000000: dcache_miss_cpi processing metric: dcache_miss_cpi ENTRY parsing metric: l1d\-loads\-misses / inst_retired.any lookup: is_ref 0, counted 0, val 300.000000: l1d-loads-misses lookup: is_ref 0, counted 64, val 800.000000: inst_retired.any processing metric: dcache_miss_cpi EXIT: 0.375000 lookup: is_ref 1, counted 0, val 0.000000: icache_miss_cycles processing metric: icache_miss_cycles ENTRY parsing metric: l1i\-loads\-misses / inst_retired.any lookup: is_ref 0, counted 32, val 200.000000: l1i-loads-misses lookup: is_ref 0, counted 64, val 800.000000: inst_retired.any processing metric: icache_miss_cycles EXIT: 0.250000 FAILED tests/parse-metric.c:343 group IPC failed, wrong ratio FAILED tests/parse-metric.c:357 test metric group test child finished with -1 ---- end ---- Parse and process metrics: FAILED! john@localhost:~/kernel-dev7/tools/perf> > >> I will have a look, but I was hoping that Ian would have a proper fix >> for this on top of ("perf metricgroup: Fix uncore metric expressions"), >> which now looks to be merged. > I still have these changes to look at in my inbox but I'm assuming > they're good:-) really? I wouldn't assume my hacky patch is good :) > Sorry for not getting to them, but it's good they are > merged. cheers