selftests/resctrl: Move run_benchmark() to a more fitting file
authorMaciej Wieczor-Retman <maciej.wieczor-retman@intel.com>
Tue, 10 Oct 2023 07:56:12 +0000 (09:56 +0200)
committerShuah Khan <skhan@linuxfoundation.org>
Fri, 13 Oct 2023 20:59:06 +0000 (14:59 -0600)
resctrlfs.c 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() is located in resctrlfs.c 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() that
makes use of run_benchmark(). Make run_benchmark() static since it's
not used between multiple files anymore.

Remove return comment from kernel-doc since the function is type void.

Signed-off-by: Maciej Wieczor-Retman <maciej.wieczor-retman@intel.com>
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Reviewed-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
tools/testing/selftests/resctrl/resctrl.h
tools/testing/selftests/resctrl/resctrl_val.c
tools/testing/selftests/resctrl/resctrlfs.c

index 8578a8b4e14592f2c6bd84fab8f04cd81c511eda..a33f414f60199ac543412589780b1e554d148ac8 100644 (file)
@@ -86,7 +86,6 @@ int validate_bw_report_request(char *bw_report);
 bool validate_resctrl_feature_request(const char *resource, const char *feature);
 char *fgrep(FILE *inf, const char *str);
 int taskset_benchmark(pid_t bm_pid, int cpu_no);
-void run_benchmark(int signum, siginfo_t *info, void *ucontext);
 int write_schemata(char *ctrlgrp, char *schemata, int cpu_no,
                   char *resctrl_val);
 int write_bm_pid_to_resctrl(pid_t bm_pid, char *ctrlgrp, char *mongrp,
index b8ca6fa40b3bf7cf3c55871794b14d4257b425b6..88789678917b6b9d799bd7ee54f4e9c9ecf7d311 100644 (file)
@@ -625,6 +625,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
+ */
+static 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
index 05390afd4d6f9f265231cc43aa2425cf3b7c5b70..5ebd436838769561bfd426a8b9c398347dc210e5 100644 (file)
@@ -294,58 +294,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