From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1F2FBC433FE for ; Thu, 10 Nov 2022 14:49:48 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230193AbiKJOtq (ORCPT ); Thu, 10 Nov 2022 09:49:46 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39646 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229463AbiKJOto (ORCPT ); Thu, 10 Nov 2022 09:49:44 -0500 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id A2FC0FAD7; Thu, 10 Nov 2022 06:49:43 -0800 (PST) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 8C0A71FB; Thu, 10 Nov 2022 06:49:49 -0800 (PST) Received: from [10.1.28.168] (e127744.cambridge.arm.com [10.1.28.168]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id C74C03F703; Thu, 10 Nov 2022 06:49:41 -0800 (PST) Subject: Re: [PATCH 07/12] perf test: Add 'sqrtloop' test workload To: Namhyung Kim , Arnaldo Carvalho de Melo , Jiri Olsa Cc: Ingo Molnar , Peter Zijlstra , LKML , Ian Rogers , Adrian Hunter , linux-perf-users@vger.kernel.org, Leo Yan , Zhengjun Xing , James Clark References: <20221109174635.859406-1-namhyung@kernel.org> <20221109174635.859406-8-namhyung@kernel.org> From: German Gomez Message-ID: <3be361f6-dd50-8998-872e-27bbf9f02017@arm.com> Date: Thu, 10 Nov 2022 14:49:36 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.14.0 MIME-Version: 1.0 In-Reply-To: <20221109174635.859406-8-namhyung@kernel.org> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Content-Language: en-US Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 09/11/2022 17:46, Namhyung Kim wrote: > The sqrtloop creates a child process to run an infinite loop calling > sqrt() with rand(). This is needed for ARM SPE fork test. > > $ perf test -w sqrtloop > > It can take an optional argument to specify how long it will run in > seconds (default: 1). > > Signed-off-by: Namhyung Kim > --- > tools/perf/tests/builtin-test.c | 1 + > tools/perf/tests/tests.h | 1 + > tools/perf/tests/workloads/Build | 1 + > tools/perf/tests/workloads/sqrtloop.c | 44 +++++++++++++++++++++++++++ > 4 files changed, 47 insertions(+) > create mode 100644 tools/perf/tests/workloads/sqrtloop.c > > diff --git a/tools/perf/tests/builtin-test.c b/tools/perf/tests/builtin-test.c > index 0ed5ac452f6e..9acb7a93eeb9 100644 > --- a/tools/perf/tests/builtin-test.c > +++ b/tools/perf/tests/builtin-test.c > @@ -122,6 +122,7 @@ static struct test_workload *workloads[] = { > &workload__noploop, > &workload__thloop, > &workload__leafloop, > + &workload__sqrtloop, > }; > > static int num_subtests(const struct test_suite *t) > diff --git a/tools/perf/tests/tests.h b/tools/perf/tests/tests.h > index 86804dd6452b..18c40319e67c 100644 > --- a/tools/perf/tests/tests.h > +++ b/tools/perf/tests/tests.h > @@ -203,5 +203,6 @@ struct test_workload workload__##work = { \ > DECLARE_WORKLOAD(noploop); > DECLARE_WORKLOAD(thloop); > DECLARE_WORKLOAD(leafloop); > +DECLARE_WORKLOAD(sqrtloop); > > #endif /* TESTS_H */ > diff --git a/tools/perf/tests/workloads/Build b/tools/perf/tests/workloads/Build > index 631596bdb2b3..1ca95cb0fdb5 100644 > --- a/tools/perf/tests/workloads/Build > +++ b/tools/perf/tests/workloads/Build > @@ -3,5 +3,6 @@ > perf-y += noploop.o > perf-y += thloop.o > perf-y += leafloop.o > +perf-y += sqrtloop.o > > CFLAGS_leafloop.o = -g -O0 -fno-inline -fno-omit-frame-pointer > diff --git a/tools/perf/tests/workloads/sqrtloop.c b/tools/perf/tests/workloads/sqrtloop.c > new file mode 100644 > index 000000000000..f7d1f8d4867b > --- /dev/null > +++ b/tools/perf/tests/workloads/sqrtloop.c > @@ -0,0 +1,44 @@ > +/* SPDX-License-Identifier: GPL-2.0 */ > +#include > +#include > +#include > +#include > +#include > +#include "../tests.h" > + > +static volatile int done; > + > +static void sighandler(int sig __maybe_unused) > +{ > + done = 1; > +} > + > +static int __sqrtloop(int sec) > +{ > + signal(SIGALRM, sighandler); > + alarm(sec); > + > + while (!done) > + sqrt(rand()); > + return 0; > +} I get some implicit declaration errors on x86 build (gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0) .  CC      tests/workloads/sqrtloop.o .tests/workloads/sqrtloop.c: In function ‘__sqrtloop’: .tests/workloads/sqrtloop.c:19:2: error: implicit declaration of function ‘alarm’ [-Werror=implicit-function-declaration] .   19 |  alarm(sec); .      |  ^~~~~ .tests/workloads/sqrtloop.c: In function ‘sqrtloop’: .tests/workloads/sqrtloop.c:33:10: error: implicit declaration of function ‘fork’ [-Werror=implicit-function-declaration] .   33 |  switch (fork()) { .      |          ^~~~ > + > +static int sqrtloop(int argc, const char **argv) > +{ > + int sec = 1; > + > + if (argc > 0) > + sec = atoi(argv[0]); > + > + switch (fork()) { > + case 0: > + return __sqrtloop(sec); > + case -1: > + return -1; > + default: > + wait(NULL); > + } > + return 0; > +} > + > +DEFINE_WORKLOAD(sqrtloop);