All of lore.kernel.org
 help / color / mirror / Atom feed
From: Namhyung Kim <namhyung@kernel.org>
To: German Gomez <german.gomez@arm.com>
Cc: Arnaldo Carvalho de Melo <acme@kernel.org>,
	Jiri Olsa <jolsa@kernel.org>, Ingo Molnar <mingo@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	LKML <linux-kernel@vger.kernel.org>,
	Ian Rogers <irogers@google.com>,
	Adrian Hunter <adrian.hunter@intel.com>,
	linux-perf-users@vger.kernel.org, Leo Yan <leo.yan@linaro.org>,
	Zhengjun Xing <zhengjun.xing@linux.intel.com>,
	James Clark <james.clark@arm.com>
Subject: Re: [PATCH 07/12] perf test: Add 'sqrtloop' test workload
Date: Thu, 10 Nov 2022 09:48:54 -0800	[thread overview]
Message-ID: <CAM9d7chY3v+KjaSXh34enE=sdAtAqPBQtW=EqYLU6RHQMMXPSg@mail.gmail.com> (raw)
In-Reply-To: <3be361f6-dd50-8998-872e-27bbf9f02017@arm.com>

Hello,

On Thu, Nov 10, 2022 at 6:49 AM German Gomez <german.gomez@arm.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@kernel.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);

  reply	other threads:[~2022-11-10 17:49 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-09 17:46 [PATCHSET 00/12] perf test: Add test workloads (v1) Namhyung Kim
2022-11-09 17:46 ` [PATCH 01/12] perf test: Add -w/--workload option Namhyung Kim
2022-11-09 18:39   ` Arnaldo Carvalho de Melo
2022-11-09 19:00     ` Namhyung Kim
2022-11-09 17:46 ` [PATCH 02/12] perf test: Replace pipe test workload with noploop Namhyung Kim
2022-11-09 17:46 ` [PATCH 03/12] perf test: Add 'thloop' test workload Namhyung Kim
2022-11-09 18:39   ` Arnaldo Carvalho de Melo
2022-11-09 17:46 ` [PATCH 04/12] perf test: Replace record test workload with thloop Namhyung Kim
2022-11-09 17:46 ` [PATCH 05/12] perf test: Add 'leafloop' test workload Namhyung Kim
2022-11-09 17:46 ` [PATCH 06/12] perf test: Replace arm callgraph fp test workload with leafloop Namhyung Kim
2022-11-10 11:20   ` Leo Yan
2022-11-10 17:45     ` Namhyung Kim
2022-11-09 17:46 ` [PATCH 07/12] perf test: Add 'sqrtloop' test workload Namhyung Kim
2022-11-10 14:49   ` German Gomez
2022-11-10 17:48     ` Namhyung Kim [this message]
2022-11-09 17:46 ` [PATCH 08/12] perf test: Replace arm spe fork test workload with sqrtloop Namhyung Kim
2022-11-10 11:45   ` Leo Yan
2022-11-09 17:46 ` [PATCH 09/12] perf test: Add 'brstack' test workload Namhyung Kim
2022-11-09 17:46 ` [PATCH 10/12] perf test: Replace brstack " Namhyung Kim
2022-11-09 17:46 ` [PATCH 11/12] perf test: Add 'datasym' " Namhyung Kim
2022-11-09 17:46 ` [PATCH 12/12] perf test: Replace data symbol test workload with datasym Namhyung Kim
2022-11-10 18:19 [PATCHSET 00/12] perf test: Add test workloads (v2) Namhyung Kim
2022-11-10 18:19 ` [PATCH 07/12] perf test: Add 'sqrtloop' test workload Namhyung Kim
2022-11-16 23:38 [PATCHSET 00/12] perf test: Add test workloads (v3) Namhyung Kim
2022-11-16 23:38 ` [PATCH 07/12] perf test: Add 'sqrtloop' test workload Namhyung Kim

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAM9d7chY3v+KjaSXh34enE=sdAtAqPBQtW=EqYLU6RHQMMXPSg@mail.gmail.com' \
    --to=namhyung@kernel.org \
    --cc=acme@kernel.org \
    --cc=adrian.hunter@intel.com \
    --cc=german.gomez@arm.com \
    --cc=irogers@google.com \
    --cc=james.clark@arm.com \
    --cc=jolsa@kernel.org \
    --cc=leo.yan@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-perf-users@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=peterz@infradead.org \
    --cc=zhengjun.xing@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.