Received: by 2002:a25:e74b:0:0:0:0:0 with SMTP id e72csp1191276ybh; Sun, 19 Jul 2020 11:18:11 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyzwaOn/38kfiRslgiInGfUqgpif0ldfTBYUvCs1bnbbjEc9G/aZhDEZwrDjOQ2PvkR3SuU X-Received: by 2002:a17:906:d784:: with SMTP id pj4mr16985404ejb.405.1595182691227; Sun, 19 Jul 2020 11:18:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1595182691; cv=none; d=google.com; s=arc-20160816; b=gJcprSqZEmSHvLckSDoGZXCn2jvi8+06PnplLoc2n3vS9YvHwSFmj84TwJNZjq9R4J bTc1ZOxZtErVhVHN5BMc10LIYGhhM38dFHOWQY6bFDi4O5TMcvS6+Vk8Qy7a5s3EBWZ0 HwhOs9hWNWHSdbrs5xuEGlQhwixSSCb6LaNrNKMEfuFzE1Gley2MNi50O9xySGXHYrs9 sSd8EoFlX0042hV10JKEjy79cAQfTJfEzDCFPm7iCxITNFH/1ExveMKpKS7ihQKOlvk8 jqzK38rhEkf3g5FkgIyo7BLMrKORyyCY17PbAk6c+QDh4gT0x6mTi+f7FguOTJk5XRau kr0w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=lRP7TG/nbXR41e+Jt2RLRkKXdHUR97tYzMeeCjfrmIs=; b=Pd8H1NuibG/FxHUFqG63tjATpwA/YFRppxxeDExH1JUjTSol9don9ooRv6zWxOxmem e47oPlIHiJ7SsvaWaycXEop5oAikpOAZnsrfvNw9+1FSYLldj8byEl8CVqyBaKnA3pMf nTAbPu4cPObJ2IQ+trdZRoTIBy51wr+UuUI3GTjsOio609zW+9ukqmbJa3uJTSniJZ5e w6TEX2OyX1vfoplC2/TznbiKNFoTwlZcetkMqRb6mk7NNSREeGKUv4TIdjhdkrforkLe 6iJpCNNj3LsuWtBlFOh3Ixl8NmLALQw0nc+LqaPirx8Hqr/E/vQlNguUyj/oSITWC3XK N3Vg== 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id t7si9070305ejx.225.2020.07.19.11.17.48; Sun, 19 Jul 2020 11:18:11 -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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727010AbgGSSO0 convert rfc822-to-8bit (ORCPT + 99 others); Sun, 19 Jul 2020 14:14:26 -0400 Received: from us-smtp-1.mimecast.com ([207.211.31.81]:37299 "EHLO us-smtp-delivery-1.mimecast.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726959AbgGSSOZ (ORCPT ); Sun, 19 Jul 2020 14:14:25 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-33-BaCFTuT6Nd-hMS-MMbGsbw-1; Sun, 19 Jul 2020 14:14:20 -0400 X-MC-Unique: BaCFTuT6Nd-hMS-MMbGsbw-1 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 33AB51083; Sun, 19 Jul 2020 18:14:18 +0000 (UTC) Received: from krava.redhat.com (unknown [10.40.192.53]) by smtp.corp.redhat.com (Postfix) with ESMTP id 5D18374F6C; Sun, 19 Jul 2020 18:14:15 +0000 (UTC) From: Jiri Olsa To: Arnaldo Carvalho de Melo Cc: lkml , Ingo Molnar , Namhyung Kim , Alexander Shishkin , Peter Zijlstra , Michael Petlan , Andi Kleen , Kajol Jain , John Garry , "Paul A. Clarke" , Stephane Eranian , Ian Rogers Subject: [PATCH 16/19] perf metric: Make compute_single function more precise Date: Sun, 19 Jul 2020 20:13:17 +0200 Message-Id: <20200719181320.785305-17-jolsa@kernel.org> In-Reply-To: <20200719181320.785305-1-jolsa@kernel.org> References: <20200719181320.785305-1-jolsa@kernel.org> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=jolsa@kernel.org X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: kernel.org Content-Type: text/plain; charset=WINDOWS-1252 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org So far compute_single function relies on the fact, that there's only single metric defined within evlist in all tests. In following patch we will add test for metric group, so we need to be able to compute metric by given name. Adding the name argument to compute_single and iterating evlist and evsel's expression to find the given metric. Signed-off-by: Jiri Olsa --- tools/perf/tests/parse-metric.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/tools/perf/tests/parse-metric.c b/tools/perf/tests/parse-metric.c index 01370ccb9ed9..5ac32f80f8ea 100644 --- a/tools/perf/tests/parse-metric.c +++ b/tools/perf/tests/parse-metric.c @@ -108,17 +108,21 @@ static void load_runtime_stat(struct runtime_stat *st, struct evlist *evlist, } static double compute_single(struct rblist *metric_events, struct evlist *evlist, - struct runtime_stat *st) + struct runtime_stat *st, const char *name) { - struct evsel *evsel = evlist__first(evlist); + struct metric_expr *mexp; struct metric_event *me; + struct evsel *evsel; - me = metricgroup__lookup(metric_events, evsel, false); - if (me != NULL) { - struct metric_expr *mexp; - - mexp = list_first_entry(&me->head, struct metric_expr, nd); - return test_generic_metric(mexp, 0, st); + evlist__for_each_entry(evlist, evsel) { + me = metricgroup__lookup(metric_events, evsel, false); + if (me != NULL) { + list_for_each_entry (mexp, &me->head, nd) { + if (strcmp(mexp->metric_name, name)) + continue; + return test_generic_metric(mexp, 0, st); + } + } } return 0.; } @@ -162,7 +166,7 @@ static int compute_metric(const char *name, struct value *vals, double *ratio) load_runtime_stat(&st, evlist, vals); /* And execute the metric */ - *ratio = compute_single(&metric_events, evlist, &st); + *ratio = compute_single(&metric_events, evlist, &st, name); /* ... clenup. */ metricgroup__rblist_exit(&metric_events); -- 2.25.4