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>,
Reinette Chatre <reinette.chatre@intel.com>,
fenghua.yu@intel.com
Subject: Re: [PATCH 2/3] selftests/resctrl: Move run_benchmark() to a more fitting file
Date: Thu, 24 Aug 2023 15:56:25 +0300 (EEST) [thread overview]
Message-ID: <3978b8f7-1d80-d7-926a-72b2cfd923bd@linux.intel.com> (raw)
In-Reply-To: <69a1ed7c06c3c34a2e39b50ffcceb9774967203a.1692880423.git.maciej.wieczor-retman@intel.com>
On Thu, 24 Aug 2023, Wieczor-Retman, Maciej wrote:
Thanks for this patch, the new location is much more appropriate and
logical (more than once I've tried to look for this from the wrong file).
> 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()
Please terminate your sentences in changelog with . like in normal
writing.
> Signed-off-by: Wieczor-Retman, Maciej <maciej.wieczor-retman@intel.com>
> ---
> tools/testing/selftests/resctrl/resctrl_val.c | 52 +++++++++++++++++++
> tools/testing/selftests/resctrl/resctrlfs.c | 52 -------------------
> 2 files changed, 52 insertions(+), 52 deletions(-)
>
> diff --git a/tools/testing/selftests/resctrl/resctrl_val.c b/tools/testing/selftests/resctrl/resctrl_val.c
> index f0f6c5f6e98b..667542c084eb 100644
> --- a/tools/testing/selftests/resctrl/resctrl_val.c
> +++ b/tools/testing/selftests/resctrl/resctrl_val.c
> @@ -621,6 +621,58 @@ 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
> + *
> + * Return: void
This Return: void feels waste of screen space as if it wouldn't be
obvious from the function signature.
> + */
> +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 a6d0b632cbc6..e3c94614c086 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
>
--
i.
next prev parent reply other threads:[~2023-08-24 12:57 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-24 12:41 [PATCH 0/3] selftests/resctrl: Bug fix and optimizations Wieczor-Retman, Maciej
2023-08-24 12:41 ` [PATCH 1/3] selftests/resctrl: Fix schemata write error check Wieczor-Retman, Maciej
2023-08-24 12:52 ` Ilpo Järvinen
2023-08-25 6:25 ` Maciej Wieczór-Retman
2023-08-25 8:43 ` Ilpo Järvinen
2023-08-25 8:50 ` Maciej Wieczór-Retman
2023-08-24 12:41 ` [PATCH 2/3] selftests/resctrl: Move run_benchmark() to a more fitting file Wieczor-Retman, Maciej
2023-08-24 12:56 ` Ilpo Järvinen [this message]
2023-08-25 6:26 ` Maciej Wieczór-Retman
2023-08-24 12:41 ` [PATCH 3/3] selftests: Add printf attribute to ksefltest prints Wieczor-Retman, Maciej
2023-08-24 13:10 ` Ilpo Järvinen
2023-08-25 6:34 ` Maciej Wieczór-Retman
2023-08-25 8:28 ` Ilpo Järvinen
2023-08-25 9:05 ` Maciej Wieczór-Retman
2023-08-25 9:14 ` Ilpo Järvinen
2023-08-25 9:16 ` 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=3978b8f7-1d80-d7-926a-72b2cfd923bd@linux.intel.com \
--to=ilpo.jarvinen@linux.intel.com \
--cc=fenghua.yu@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=maciej.wieczor-retman@intel.com \
--cc=reinette.chatre@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.