lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Thu, 10 Nov 2022 09:48:54 -0800 From: Namhyung Kim <namhyung@...nel.org> To: German Gomez <german.gomez@....com> Cc: Arnaldo Carvalho de Melo <acme@...nel.org>, Jiri Olsa <jolsa@...nel.org>, Ingo Molnar <mingo@...nel.org>, Peter Zijlstra <peterz@...radead.org>, LKML <linux-kernel@...r.kernel.org>, Ian Rogers <irogers@...gle.com>, Adrian Hunter <adrian.hunter@...el.com>, linux-perf-users@...r.kernel.org, Leo Yan <leo.yan@...aro.org>, Zhengjun Xing <zhengjun.xing@...ux.intel.com>, James Clark <james.clark@....com> Subject: Re: [PATCH 07/12] perf test: Add 'sqrtloop' test workload Hello, On Thu, Nov 10, 2022 at 6:49 AM German Gomez <german.gomez@....com> wrote: > > 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 <namhyung@...nel.org> > > --- > > 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 <math.h> > > +#include <signal.h> > > +#include <stdlib.h> > > +#include <linux/compiler.h> > > +#include <sys/wait.h> > > +#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()) { > . | ^~~~ Oh, thanks for letting me know. I think it needs <unitstd.h>. Will fix in v2. Thanks, Namhyung > > > + > > +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);
Powered by blists - more mailing lists