Received: by 2002:a25:ca44:0:0:0:0:0 with SMTP id a65csp969495ybg; Wed, 29 Jul 2020 02:24:10 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzqztUaG+Z1CCzhhYfsLX+0kcoqAIN/QljZLl2ZriApiiLqFi7iM/yYTtFtJJaUeYT96OZq X-Received: by 2002:aa7:d5d5:: with SMTP id d21mr5089054eds.229.1596014650507; Wed, 29 Jul 2020 02:24:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1596014650; cv=none; d=google.com; s=arc-20160816; b=JEVRS7i48eouzu5PNtMutyYZsjT1KPRKbNYdGmi83l8buiF2myZcTl31nD43kAFk5e w0OCEf6j6m2vLnmBGbJ9vlDc8p/Mp40v3DbiksXYJkNK43hbiMelH2nSMZ+soxmsH30J qTZDdbSPShLiLXruwF9o9XBb0npS75cc0DIkK4tjG9l+f84MiD5lyqrpK9Jqo6YUBbvz ucq0+vt0v14qwezUszamG5uHpF4mmQs1hAiu4fKFr2+Fo511scUf6XSo4IR+cidsZUCg ySSww1tuq1pu/Z+UO1CS65Z4F25wk5q3tOxNtQrqtjhzVyWNam0hoqjwgmtmuUIILRpo OeQg== 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=fq1CM/eEBYw+ZNx2kRykj+XVCpGx9LIYlFlWaCkARX4=; b=YFXgl54HjLfbdwBqkQJWfkC+S1+1uxUR/ceRbjtraqziYC4i+BHtkLo/5jMdUiHV80 7mYmJtn5sB9fl3//HQKg0J1ka9X69xvTaB4tavqc8O6SiQcPrTfvBPjNflFahL+fl0z+ Gxg75alBfrj/ZWT1bwi6wX4r3bZFuPIHJwMzKIq2Zfr/X1hhmA3GT7FAKlLWpZa4gqP9 PeOERR4LWYtgbCDAKy/lRr6VvtEc+LVY6hrEMWtTb6/4nSbanPcJPP9zmw7EbnuW4KYF Jd1aD6YSi54FPS1LW4kfBXqEI0eXz7ATJUEP02jYJNe7fmWe9Br13gEuLJhHvgKl+z88 ov0Q== 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 df7si1101063edb.462.2020.07.29.02.23.48; Wed, 29 Jul 2020 02:24:10 -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 S1728331AbgG2JU1 convert rfc822-to-8bit (ORCPT + 99 others); Wed, 29 Jul 2020 05:20:27 -0400 Received: from us-smtp-1.mimecast.com ([207.211.31.81]:50995 "EHLO us-smtp-delivery-1.mimecast.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1728328AbgG2JUZ (ORCPT ); Wed, 29 Jul 2020 05:20: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-389-Eyu-HyyZM7qVoxYx4ZaFdQ-1; Wed, 29 Jul 2020 05:20:20 -0400 X-MC-Unique: Eyu-HyyZM7qVoxYx4ZaFdQ-1 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 8E6FD80046C; Wed, 29 Jul 2020 09:20:18 +0000 (UTC) Received: from krava.redhat.com (unknown [10.40.193.247]) by smtp.corp.redhat.com (Postfix) with ESMTP id 3CD526931E; Wed, 29 Jul 2020 09:20:14 +0000 (UTC) From: Jiri Olsa To: Arnaldo Carvalho de Melo Cc: Alexander Shishkin , Andi Kleen , Ian Rogers , John Garry , Kajol Jain , Michael Petlan , Namhyung Kim , Paul Clarke , Peter Zijlstra , Stephane Eranian , lkml , Ingo Molnar , Peter Zijlstra Subject: [PATCH 16/19] perf metric: Make compute_single function more precise Date: Wed, 29 Jul 2020 11:19:05 +0200 Message-Id: <20200729091908.1378911-17-jolsa@kernel.org> In-Reply-To: <20200729091908.1378911-1-jolsa@kernel.org> References: <20200729091908.1378911-1-jolsa@kernel.org> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 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 Cc: Alexander Shishkin Cc: Andi Kleen Cc: Ian Rogers Cc: John Garry Cc: Kajol Jain Cc: Michael Petlan Cc: Namhyung Kim Cc: Paul Clarke Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lore.kernel.org/lkml/20200719181320.785305-17-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo --- 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