Received: by 2002:a25:2c96:0:0:0:0:0 with SMTP id s144csp1111062ybs; Mon, 25 May 2020 07:25:38 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxucssMOSaT3AmuNoGq0/tv0u1vo5lFuslh9JQEPqBO+eXTw73t5iHwPz+My0XlPW/YJJPz X-Received: by 2002:a17:906:3d69:: with SMTP id r9mr18298294ejf.20.1590416737810; Mon, 25 May 2020 07:25:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1590416737; cv=none; d=google.com; s=arc-20160816; b=0O0sljlq2Bs/pZjkNtj7e/H4WUbrHnrUEMQTXsN9mLXXoEgHU4Q6yuod5Qq7GFAtaB qRJDrj4ZARj/pICm6p5t96YSb5KU/EOjI0loI0lTVP+nfU/P+HL2iso9MWRWUby/q1Pe b1KGSbh5/5sTcTn8/wxIabzi5hdQ8aEA2FtqxUYKN8A9hzXbSGP6/h0x0Eghr0yacW/H BJ0clcuoakyWFuJK+YiluHft5ugP53xaDvcY0wURAh+9v+5STn7B8pRncKqWhAnKwmtV vvq5dQ1iPIqdxr3Jw7P3ycdJ/kBLihDIGp8NMlGLvC/TmNPjI9p3+iosf07CwXXW2Qx/ kJtQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :dkim-signature; bh=oekbiCPco7/dTaqctH5U2ySsnA1llpGYr8dkfx37sNk=; b=ysfEAl2WQojHrwXQlJ9VtqSt2qBziBd1CGA2JypSQ1SPVAETgG7ZMzvm52UBV0Xfcr O3lPmsYY5zz8eiWSDFEdzmN+Hs28KWEB4dK5w25cGzgOJF4oMqTTIX5y2QGLohbMeFFk JaDZh3cfq8Grg8JdfdhxsFREhC/C1mPFHp38Yh7P99+TgQ5WQOMlaPEMilr6A7DWBuQp SEHbsEkoIS87YG/NE2wUx40fqQzBHtqSUYUZb1JjHZvhg94kSq9SBgdmhQ8DqXOeA0AP FP5FIvtZPGvr/6BYJjkL0ZeGES/EqU6SC3J67JED/loDCy/jHzSY8/oxphzGXqlzgwEb BjYg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=Ft8UfmHx; 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 u3si9002865eja.573.2020.05.25.07.25.14; Mon, 25 May 2020 07:25:37 -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=@kernel.org header.s=default header.b=Ft8UfmHx; 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 S2403960AbgEYOXF (ORCPT + 99 others); Mon, 25 May 2020 10:23:05 -0400 Received: from mail.kernel.org ([198.145.29.99]:60576 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2388714AbgEYOXF (ORCPT ); Mon, 25 May 2020 10:23:05 -0400 Received: from quaco.ghostprotocols.net (unknown [179.97.37.151]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 5C9092071C; Mon, 25 May 2020 14:23:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1590416584; bh=si05xKx2ayGiuMaa3p/hhp+LjCgDQcldQfzcnOm34uI=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=Ft8UfmHxwSgWTAU8oeokB5qd9p5bARRU3idPeR75mBXvJoSIwO6kAxQJJK1P4TobB fHPFWwx3VFEHE/x784zVWf7FjtpXnN8AhJxdeZ7lsgfn96JIrsRyXKl3/Lr0o16MrJ g3EgyGVFpUMXy8rnDCpZUMdVn3B4LaHJK36PlVas= Received: by quaco.ghostprotocols.net (Postfix, from userid 1000) id 72DEA40AFD; Mon, 25 May 2020 11:23:00 -0300 (-03) Date: Mon, 25 May 2020 11:23:00 -0300 From: Arnaldo Carvalho de Melo To: Jiri Olsa Cc: lkml , Ingo Molnar , Namhyung Kim , Alexander Shishkin , Peter Zijlstra , Michael Petlan , Ian Rogers , Stephane Eranian , Andi Kleen Subject: Re: [RFC 00/14] perf tests: Check on subtest for user specified test Message-ID: <20200525142300.GK14034@kernel.org> References: <20200524224219.234847-1-jolsa@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20200524224219.234847-1-jolsa@kernel.org> X-Url: http://acmel.wordpress.com Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Em Mon, May 25, 2020 at 12:42:05AM +0200, Jiri Olsa escreveu: > hi, > changes for using metric result in another metric seem > to change lot of core metric code, so it's better we > have some more tests before we do that. > > Sending as RFC as it's still alive and you guys might > have some other idea of how to do this. > > Also available in here: > git://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git > perf/fixes I applied the first three patches, will wait a bit for Ian and others to have some time to look at it, but one thing I thought was that instead of having parse_state->fake_pmu as a bool, you could have it as a pointer to the fake pmu, this way we would do away with that static thing in the middle of the parsing code. +static int check_id(const char *id) +{ + struct parse_events_error error; + struct evlist *evlist; + int ret; + + /* Numbers are always valid. */ + if (is_number(id)) + return 0; + + evlist = evlist__new(); + if (!evlist) + return -1; + + memset(&error, 0, sizeof(error)); + ret = parse_events_fake(evlist, id, &error); + if (ret) { + pr_debug("str : %s\n", error.str); + pr_debug("help : %s\n", error.help); + pr_debug("first_str : %s\n", error.first_str); + pr_debug("first_help : %s\n", error.first_help); + } + + evlist__delete(evlist); + free(error.str); + free(error.help); + free(error.first_str); + free(error.first_help); + return ret; +} Would read: struct perf_pmu fake = { 0, }; . . . ret = parse_events_fake_pmu(evlist, id, &fake, &error); . . . That also renames parse_events_fake() to parse_events_fake_pmu(). > jirka > > > --- > Jiri Olsa (14): > perf tests: Check on subtest for user specified test > perf tools: Do not pass avg to generic_metric > perf tools: Add struct parse_events_state pointer to scanner > perf tools: Add fake pmu support > perf tools: Add parse_events_fake interface > perf tests: Add another pmu-events tests > perf tools: Factor out parse_groups function > perf tools: Add metricgroup__parse_groups_test function > perf tools: Add fake_pmu to parse_events function > perf tools: Add map to parse_events function > perf tools: Factor out prepare_metric function > perf tools: Add test_generic_metric function > perf tests: Add parse metric test for ipc metric > perf tests: Add parse metric test for frontend metric > > tools/perf/tests/Build | 1 + > tools/perf/tests/builtin-test.c | 38 ++++++++++++++++++++++------ > tools/perf/tests/parse-metric.c | 163 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > tools/perf/tests/pmu-events.c | 120 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > tools/perf/tests/tests.h | 1 + > tools/perf/util/metricgroup.c | 53 ++++++++++++++++++++++++++++++--------- > tools/perf/util/metricgroup.h | 9 +++++++ > tools/perf/util/parse-events.c | 73 ++++++++++++++++++++++++++++++++++++++--------------- > tools/perf/util/parse-events.h | 6 ++++- > tools/perf/util/parse-events.l | 16 +++++++----- > tools/perf/util/parse-events.y | 37 +++++++++++++++++++++++++-- > tools/perf/util/stat-shadow.c | 77 ++++++++++++++++++++++++++++++++++++-------------------- > tools/perf/util/stat.h | 3 +++ > 13 files changed, 521 insertions(+), 76 deletions(-) > create mode 100644 tools/perf/tests/parse-metric.c > -- - Arnaldo