Re: [PATCH 09/12] perf test: Add 'brstack' test workload

James Clark
2022-11-16T11:51:49Z

On 10/11/2022 18:19, Namhyung Kim wrote:
[...]
> +
> +#define BENCH_RUNS 999999
> +
> +static volatile int cnt;
> +
> +static void brstack_bar(void) {
> +} /* return */
> +
> +static void brstack_foo(void) {
> + brstack_bar(); /* call */
> +} /* return */
> +
> +static void brstack_bench(void) {
> + void (*brstack_foo_ind)(void) = brstack_foo;
> +
> + if ((cnt++) % 3) /* branch (cond) */
> + brstack_foo(); /* call */
> + brstack_bar(); /* call */
> + brstack_foo_ind(); /* call (ind) */
> +}
> +
> +static int brstack(int argc, const char **argv)
> +{
> + if (argc > 0)
> + cnt = atoi(argv[0]);
> +
> + while (1) {
> + if ((cnt++) > BENCH_RUNS)
> + break;

Hi Namhyung,

I'm reading this as you can specify the number of loops as an argument.

In that case should it be more like this?

int num_loops = argc>0 ? atoi(argv[0]) : BENCH_RUNS;

if ((cnt++) > num_loops)
break;

> + brstack_bench();/* call */
> + } /* branch (uncond) */
> + return 0;
> +}
> +
> +DEFINE_WORKLOAD(brstack);