From: "Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>
To: "Wieczor-Retman, Maciej" <maciej.wieczor-retman@intel.com>
Cc: LKML <linux-kernel@vger.kernel.org>,
linux-kselftest@vger.kernel.org, shuah@kernel.org,
fenghua.yu@intel.com, Reinette Chatre <reinette.chatre@intel.com>
Subject: Re: [PATCH v2 2/2] selftests/resctrl: Move run_benchmark() to a more fitting file
Date: Mon, 28 Aug 2023 13:47:20 +0300 (EEST) [thread overview]
Message-ID: <b4ead49-e91f-429-5980-279ba0df439@linux.intel.com> (raw)
In-Reply-To: <e527be8b871212823ff83f3800b6eecc2a75e455.1693213468.git.maciej.wieczor-retman@intel.com>
[-- Attachment #1: Type: text/plain, Size: 5019 bytes --]
On Mon, 28 Aug 2023, Wieczor-Retman, Maciej wrote:
> Resctrlfs.c file contains mostly functions that interact in some way
> with resctrl FS entries while functions inside resctrl_val.c deal with
> measurements and benchmarking.
>
> Run_benchmark() function is located in resctrlfs.c file even though it's
> purpose is not interacting with the resctrl FS but to execute cache
> checking logic.
>
> Move run_benchmark() to resctrl_val.c just before resctrl_val() function
> that makes use of run_benchmark().
>
> Remove return comment from kernel-doc since the function is type void.
>
> Changelog v2:
> - Add dots at the end of patch msg sentences.
> - Remove "Return: void" from run_benchmark() kernel-doc comment.
>
> Signed-off-by: Wieczor-Retman, Maciej <maciej.wieczor-retman@intel.com>
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
--
i.
> ---
> tools/testing/selftests/resctrl/resctrl_val.c | 50 ++++++++++++++++++
> tools/testing/selftests/resctrl/resctrlfs.c | 52 -------------------
> 2 files changed, 50 insertions(+), 52 deletions(-)
>
> diff --git a/tools/testing/selftests/resctrl/resctrl_val.c b/tools/testing/selftests/resctrl/resctrl_val.c
> index f0f6c5f6e98b..5c8dc0a7bab9 100644
> --- a/tools/testing/selftests/resctrl/resctrl_val.c
> +++ b/tools/testing/selftests/resctrl/resctrl_val.c
> @@ -621,6 +621,56 @@ measure_vals(struct resctrl_val_param *param, unsigned long *bw_resc_start)
> return 0;
> }
>
> +/*
> + * run_benchmark - Run a specified benchmark or fill_buf (default benchmark)
> + * in specified signal. Direct benchmark stdio to /dev/null.
> + * @signum: signal number
> + * @info: signal info
> + * @ucontext: user context in signal handling
> + */
> +void run_benchmark(int signum, siginfo_t *info, void *ucontext)
> +{
> + int operation, ret, memflush;
> + char **benchmark_cmd;
> + size_t span;
> + bool once;
> + FILE *fp;
> +
> + benchmark_cmd = info->si_ptr;
> +
> + /*
> + * Direct stdio of child to /dev/null, so that only parent writes to
> + * stdio (console)
> + */
> + fp = freopen("/dev/null", "w", stdout);
> + if (!fp)
> + PARENT_EXIT("Unable to direct benchmark status to /dev/null");
> +
> + if (strcmp(benchmark_cmd[0], "fill_buf") == 0) {
> + /* Execute default fill_buf benchmark */
> + span = strtoul(benchmark_cmd[1], NULL, 10);
> + memflush = atoi(benchmark_cmd[2]);
> + operation = atoi(benchmark_cmd[3]);
> + if (!strcmp(benchmark_cmd[4], "true"))
> + once = true;
> + else if (!strcmp(benchmark_cmd[4], "false"))
> + once = false;
> + else
> + PARENT_EXIT("Invalid once parameter");
> +
> + if (run_fill_buf(span, memflush, operation, once))
> + fprintf(stderr, "Error in running fill buffer\n");
> + } else {
> + /* Execute specified benchmark */
> + ret = execvp(benchmark_cmd[0], benchmark_cmd);
> + if (ret)
> + perror("wrong\n");
> + }
> +
> + fclose(stdout);
> + PARENT_EXIT("Unable to run specified benchmark");
> +}
> +
> /*
> * resctrl_val: execute benchmark and measure memory bandwidth on
> * the benchmark
> diff --git a/tools/testing/selftests/resctrl/resctrlfs.c b/tools/testing/selftests/resctrl/resctrlfs.c
> index 0f9644e5a25e..72dd8c3f655a 100644
> --- a/tools/testing/selftests/resctrl/resctrlfs.c
> +++ b/tools/testing/selftests/resctrl/resctrlfs.c
> @@ -291,58 +291,6 @@ int taskset_benchmark(pid_t bm_pid, int cpu_no)
> return 0;
> }
>
> -/*
> - * run_benchmark - Run a specified benchmark or fill_buf (default benchmark)
> - * in specified signal. Direct benchmark stdio to /dev/null.
> - * @signum: signal number
> - * @info: signal info
> - * @ucontext: user context in signal handling
> - *
> - * Return: void
> - */
> -void run_benchmark(int signum, siginfo_t *info, void *ucontext)
> -{
> - int operation, ret, memflush;
> - char **benchmark_cmd;
> - size_t span;
> - bool once;
> - FILE *fp;
> -
> - benchmark_cmd = info->si_ptr;
> -
> - /*
> - * Direct stdio of child to /dev/null, so that only parent writes to
> - * stdio (console)
> - */
> - fp = freopen("/dev/null", "w", stdout);
> - if (!fp)
> - PARENT_EXIT("Unable to direct benchmark status to /dev/null");
> -
> - if (strcmp(benchmark_cmd[0], "fill_buf") == 0) {
> - /* Execute default fill_buf benchmark */
> - span = strtoul(benchmark_cmd[1], NULL, 10);
> - memflush = atoi(benchmark_cmd[2]);
> - operation = atoi(benchmark_cmd[3]);
> - if (!strcmp(benchmark_cmd[4], "true"))
> - once = true;
> - else if (!strcmp(benchmark_cmd[4], "false"))
> - once = false;
> - else
> - PARENT_EXIT("Invalid once parameter");
> -
> - if (run_fill_buf(span, memflush, operation, once))
> - fprintf(stderr, "Error in running fill buffer\n");
> - } else {
> - /* Execute specified benchmark */
> - ret = execvp(benchmark_cmd[0], benchmark_cmd);
> - if (ret)
> - perror("wrong\n");
> - }
> -
> - fclose(stdout);
> - PARENT_EXIT("Unable to run specified benchmark");
> -}
> -
> /*
> * create_grp - Create a group only if one doesn't exist
> * @grp_name: Name of the group
>
next prev parent reply other threads:[~2023-08-28 10:48 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-28 9:56 [PATCH v2 0/2] selftests/resctrl: Bug fix and optimizations Wieczor-Retman, Maciej
2023-08-28 9:56 ` [PATCH v2 1/2] selftests/resctrl: Fix schemata write error check Wieczor-Retman, Maciej
2023-08-28 10:43 ` Ilpo Järvinen
2023-08-28 12:55 ` Maciej Wieczór-Retman
2023-08-30 20:49 ` Reinette Chatre
2023-08-31 8:06 ` Maciej Wieczór-Retman
2023-08-28 9:56 ` [PATCH v2 2/2] selftests/resctrl: Move run_benchmark() to a more fitting file Wieczor-Retman, Maciej
2023-08-28 10:47 ` Ilpo Järvinen [this message]
2023-08-30 20:51 ` Reinette Chatre
2023-08-31 8:43 ` Maciej Wieczór-Retman
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=b4ead49-e91f-429-5980-279ba0df439@linux.intel.com \
--to=ilpo.jarvinen@linux.intel.com \
--cc=fenghua.yu@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=maciej.wieczor-retman@intel.com \
--cc=reinette.chatre@intel.com \
--cc=shuah@kernel.org \
/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.