Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp907191ybt; Fri, 26 Jun 2020 14:43:50 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxcl1lMyJ2fEntAoG71Z8uKHL9xXJ1Opt49cKEFELGCzbmDDeSqA9Cbu0O/d/MokvnKl8Mj X-Received: by 2002:aa7:cfc8:: with SMTP id r8mr5644210edy.125.1593207829892; Fri, 26 Jun 2020 14:43:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1593207829; cv=none; d=google.com; s=arc-20160816; b=VRfiYcMOlVk/aQzXtbFDhNlgR/mmRjwBt9b9NkmCsM+V+KL5epI+yVgIha/xC7pENx WXTlLAtN+wEjZDLFtWcYSYitPW+WHySkei+7aHGuBz4SqqjOJIZktF4pvlg3t4kWuQhM tidqf1aH8UlumSN1BPVw0ioqg62/4fnt5k+Y6ruE1JuNr4lKgghuGkfHdcNviRlV7gSg MsRFV+85IfkiYCxMLvB+Iz4wkYwzzVejLMw/evJ3PUd7KT1uqF2+yn7A2rEyTWoe3PYV D+hjAQZD6x/zb/cGYp4Vp7bCrsmwFP5DEQGmVsUGysvIZqRBR7tqZVs7aCoBRz+lVnlj ymhw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=bf2oIM8gzF9kivw/oc3AdRS2cUxG1GhwX0+YkSkUH5k=; b=JETpzhwHcB+k7fABl0ykceYyZ0C1BzhO0XPWA9rzuf1hIB3VcOxtbWwz3za5GBAtQP p6qc8sr9L4ZuQ3Ru1nRWaa5C4ksKgJiArbJkAY9pXx9tA48Q1fvE9E9gizoSO8Br02QH 3IH2YIoAhquUMPPYeZI9U+WZcidPXQv4r76i8/eLC7jMkULaZkeT6vHYSgHNBWAbzJe4 xxcqFWMh8UpcoItowV19tw4ABy3PNClWcOSFXWrzcEuYKknVStmLzKlJnLeuTuNBIBF9 d28t5nnkPFQnuI75pXzpHUoT3TQwpiv9lL5kO8m1m+hmpovk6Y1he24Bxn7zFXZsc0P5 vi9Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=C0siHl+O; 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; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id p3si17128118edr.104.2020.06.26.14.43.26; Fri, 26 Jun 2020 14:43:49 -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; dkim=pass header.i=@google.com header.s=20161025 header.b=C0siHl+O; 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; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1725922AbgFZVkt (ORCPT + 99 others); Fri, 26 Jun 2020 17:40:49 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53666 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725793AbgFZVkr (ORCPT ); Fri, 26 Jun 2020 17:40:47 -0400 Received: from mail-wr1-x442.google.com (mail-wr1-x442.google.com [IPv6:2a00:1450:4864:20::442]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 74D42C03E979 for ; Fri, 26 Jun 2020 14:40:47 -0700 (PDT) Received: by mail-wr1-x442.google.com with SMTP id h5so10801528wrc.7 for ; Fri, 26 Jun 2020 14:40:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=bf2oIM8gzF9kivw/oc3AdRS2cUxG1GhwX0+YkSkUH5k=; b=C0siHl+OVTSGPa4s2RBZWxiQqNDD+DzALy6IX6xsvS/mn2fyikHiuX6vrgpKwpFG4f Ny9wFBsoqa9wXX/RZ3YFHFc84FAXKE7SnzElLD+ygDl+3amH8+Wb7thVejpGNGyZsGkM lL25biBlUa/jSaTSGyDfqA4VgUDgrhCXRmCgv4/x6N3tVx1ng4i4zADbM6yd5xlQLmCs C7F5+b1IKdNhTZpR+3ODMa6t+Ixd7mfNDxvX27qZu/8OCzESW2A5N4BLdhQ/wuM4uYy0 2H5rjslWKH3/QLezUUf2WW02w547iBAtXdmSegfLePYwhHFR1BlQ2FdJkgXoqKFpokmV jkaA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=bf2oIM8gzF9kivw/oc3AdRS2cUxG1GhwX0+YkSkUH5k=; b=swdMW82Q87iVJvAYL564YCoqNtwDx2h/RS/O3dBLBdZNPP97jUinJkqNNqzKaKW0dj 4sIxq+HWmEpgzYxZoXSyGqZljd+4UZ5uplMtq71d1npcJbpRh7SQSo4uvVY7KrJGbmhX eHDjVj9c/vX1mpXj0CXnVYQ6z3M9Ft8+ddoBAFn5M4PPB+VBHqnQYIV5c1F1MW4WEQTi vt4mjyuYne7JdvUaGea2U3FJQQQ8CsWWyHDJ362Yvzn4RmNZgCEsO0zMQY6yVcGXXSAM 8yLuLbJCtTbhZ5svW5vcBMIV7IHpo1YMv+Xjeh8fOyZPrLbtRyvrN4aSA3qrpE46gfyF 9bHQ== X-Gm-Message-State: AOAM5331lovXPB+DUh+jmvPN7udUzCrcycvsVuwovdzy1huoER7PvbPK VhleoptE8IvFRv4xKEGR5axI5b0jZP+ZntyJmw5rhw== X-Received: by 2002:adf:e40e:: with SMTP id g14mr6109686wrm.271.1593207645927; Fri, 26 Jun 2020 14:40:45 -0700 (PDT) MIME-Version: 1.0 References: <20200626194720.2915044-1-jolsa@kernel.org> <20200626194720.2915044-11-jolsa@kernel.org> In-Reply-To: <20200626194720.2915044-11-jolsa@kernel.org> From: Ian Rogers Date: Fri, 26 Jun 2020 14:40:34 -0700 Message-ID: Subject: Re: [PATCH 10/10] perf tests: Add cache_miss_cycles to metric parse test To: Jiri Olsa Cc: Arnaldo Carvalho de Melo , lkml , Ingo Molnar , Namhyung Kim , Alexander Shishkin , Peter Zijlstra , Michael Petlan , Andi Kleen , Kajol Jain , John Garry , "Paul A. Clarke" , Stephane Eranian Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Jun 26, 2020 at 12:48 PM Jiri Olsa wrote: > > Adding test that compute metric with other metrics in it. > > cache_miss_cycles = metric:dcache_miss_cpi + metric:icache_miss_cycles > This is really nice! Do we need to do anything in tests/pmu-events.c? Presumably if a metric is referencing another metric the call to expr__parse there will test the other metric is parseable. Just wanted to sanity check. Acked-by: Ian Rogers > Signed-off-by: Jiri Olsa > --- > tools/perf/tests/parse-metric.c | 33 +++++++++++++++++++++++++++++++++ > 1 file changed, 33 insertions(+) > > diff --git a/tools/perf/tests/parse-metric.c b/tools/perf/tests/parse-metric.c > index 8c48251425e1..feb97f7c90c8 100644 > --- a/tools/perf/tests/parse-metric.c > +++ b/tools/perf/tests/parse-metric.c > @@ -11,6 +11,8 @@ > #include "debug.h" > #include "expr.h" > #include "stat.h" > +#include > +#include > > static struct pmu_event pme_test[] = { > { > @@ -22,6 +24,18 @@ static struct pmu_event pme_test[] = { > "( 1 + cpu_clk_unhalted.one_thread_active / cpu_clk_unhalted.ref_xclk ) )))", > .metric_name = "Frontend_Bound_SMT", > }, > +{ > + .metric_expr = "l1d\\-loads\\-misses / inst_retired.any", > + .metric_name = "dcache_miss_cpi", > +}, > +{ > + .metric_expr = "l1i\\-loads\\-misses / inst_retired.any", > + .metric_name = "icache_miss_cycles", > +}, > +{ > + .metric_expr = "(metric:dcache_miss_cpi + metric:icache_miss_cycles)", > + .metric_name = "cache_miss_cycles", > +}, > }; > > static struct pmu_events_map map = { > @@ -162,9 +176,28 @@ static int test_frontend(void) > return 0; > } > > +static int test_cache_miss_cycles(void) > +{ > + double ratio; > + struct value vals[] = { > + { .event = "l1d-loads-misses", .val = 300 }, > + { .event = "l1i-loads-misses", .val = 200 }, > + { .event = "inst_retired.any", .val = 400 }, > + { 0 }, > + }; > + > + TEST_ASSERT_VAL("failed to compute metric", > + compute_metric("cache_miss_cycles", vals, &ratio) == 0); > + > + TEST_ASSERT_VAL("cache_miss_cycles failed, wrong ratio", > + ratio == 1.25); > + return 0; > +} > + > int test__parse_metric(struct test *test __maybe_unused, int subtest __maybe_unused) > { > TEST_ASSERT_VAL("IPC failed", test_ipc() == 0); > TEST_ASSERT_VAL("frontend failed", test_frontend() == 0); > + TEST_ASSERT_VAL("cache_miss_cycles failed", test_cache_miss_cycles() == 0); > return 0; > } > -- > 2.25.4 >