selftests/resctrl: Return -1 instead of errno on error
authorIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Fri, 15 Dec 2023 15:04:48 +0000 (17:04 +0200)
committerShuah Khan <skhan@linuxfoundation.org>
Tue, 13 Feb 2024 20:56:43 +0000 (13:56 -0700)
A number of functions in the resctrl selftests return errno. It is
problematic because errno is positive which is often counterintuitive.
Also, every site returning errno prints the error message already with
ksft_perror() so there is not much added value in returning the precise
error code.

Simply convert all places returning errno to return -1 that is typical
userspace error code in case of failures.

While at it, improve resctrl_val() comment to state that 0 means the
test was run (either pass or fail).

Signed-off-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/cache.c
tools/testing/selftests/resctrl/cat_test.c
tools/testing/selftests/resctrl/cmt_test.c
tools/testing/selftests/resctrl/mba_test.c
tools/testing/selftests/resctrl/mbm_test.c
tools/testing/selftests/resctrl/resctrl_val.c
tools/testing/selftests/resctrl/resctrlfs.c

index 992bac8c352ba290cbdebb4f2e2842335c2ca915..1fa4b86e1459b1e807a562c8340d470cc18fddce 100644 (file)
@@ -126,7 +126,7 @@ static int get_llc_occu_resctrl(unsigned long *llc_occupancy)
        if (!fp) {
                ksft_perror("Failed to open results file");
 
-               return errno;
+               return -1;
        }
        if (fscanf(fp, "%lu", llc_occupancy) <= 0) {
                ksft_perror("Could not get llc occupancy");
@@ -146,7 +146,7 @@ static int get_llc_occu_resctrl(unsigned long *llc_occupancy)
  * @llc_value:         perf miss value /
  *                     llc occupancy value reported by resctrl FS
  *
- * Return:             0 on success. non-zero on failure.
+ * Return:             0 on success, < 0 on error.
  */
 static int print_results_cache(char *filename, int bm_pid,
                               unsigned long llc_value)
@@ -161,7 +161,7 @@ static int print_results_cache(char *filename, int bm_pid,
                if (!fp) {
                        ksft_perror("Cannot open results file");
 
-                       return errno;
+                       return -1;
                }
                fprintf(fp, "Pid: %d \t llc_value: %lu\n", bm_pid, llc_value);
                fclose(fp);
index 9bb8ba93f433555f0189a60c93a20b811d40df8f..fabb56ff68d16645169afda34b814ef11d79301d 100644 (file)
@@ -53,7 +53,7 @@ static int check_results(struct resctrl_val_param *param, size_t span)
        if (!fp) {
                ksft_perror("Cannot open file");
 
-               return errno;
+               return -1;
        }
 
        while (fgets(temp, sizeof(temp), fp)) {
@@ -150,7 +150,7 @@ int cat_perf_miss_val(int cpu_no, int n, char *cache_type)
 
        if (pipe(pipefd)) {
                ksft_perror("Unable to create pipe");
-               return errno;
+               return -1;
        }
 
        fflush(stdout);
index 16fc0488e0a54598ea20493b40af53d56e6898ea..ffd302bd5c738849b22d044ea3ee7c946b3d15db 100644 (file)
@@ -39,7 +39,7 @@ static int check_results(struct resctrl_val_param *param, size_t span, int no_of
        if (!fp) {
                ksft_perror("Error in opening file");
 
-               return errno;
+               return -1;
        }
 
        while (fgets(temp, sizeof(temp), fp)) {
index 4988b93add6a798fd61b13b386ce196e7b4f6aed..e907adf7cd254dda968fa947f14f8d9e32a615bd 100644 (file)
@@ -111,7 +111,7 @@ static int check_results(void)
        if (!fp) {
                ksft_perror(output);
 
-               return errno;
+               return -1;
        }
 
        runs = 0;
index 045cd7818c79f01aec36dc121ecf69e283c5ea45..721b3ecbc1588512ad58f1c5d372e80e6b8b093d 100644 (file)
@@ -61,7 +61,7 @@ static int check_results(size_t span)
        if (!fp) {
                ksft_perror(output);
 
-               return errno;
+               return -1;
        }
 
        runs = 0;
index 231d2012de2bd9eb4e2654a072c6cf578ad15645..7fd9f101013596b416dce5696443afa19c6af072 100644 (file)
@@ -526,7 +526,7 @@ void signal_handler_unregister(void)
  * @bw_imc:            perf imc counter value
  * @bw_resc:           memory bandwidth value
  *
- * Return:             0 on success. non-zero on failure.
+ * Return:             0 on success, < 0 on error.
  */
 static int print_results_bw(char *filename,  int bm_pid, float bw_imc,
                            unsigned long bw_resc)
@@ -542,14 +542,14 @@ static int print_results_bw(char *filename,  int bm_pid, float bw_imc,
                if (!fp) {
                        ksft_perror("Cannot open results file");
 
-                       return errno;
+                       return -1;
                }
                if (fprintf(fp, "Pid: %d \t Mem_BW_iMC: %f \t Mem_BW_resc: %lu \t Difference: %lu\n",
                            bm_pid, bw_imc, bw_resc, diff) <= 0) {
                        ksft_print_msg("Could not log results\n");
                        fclose(fp);
 
-                       return errno;
+                       return -1;
                }
                fclose(fp);
        }
@@ -686,7 +686,7 @@ static void run_benchmark(int signum, siginfo_t *info, void *ucontext)
  * @benchmark_cmd:     benchmark command and its arguments
  * @param:             parameters passed to resctrl_val()
  *
- * Return:             0 on success. non-zero on failure.
+ * Return:             0 when the test was run, < 0 on error.
  */
 int resctrl_val(const char * const *benchmark_cmd, struct resctrl_val_param *param)
 {
@@ -814,7 +814,7 @@ int resctrl_val(const char * const *benchmark_cmd, struct resctrl_val_param *par
        /* Signal child to start benchmark */
        if (sigqueue(bm_pid, SIGUSR1, value) == -1) {
                ksft_perror("sigqueue SIGUSR1 to child");
-               ret = errno;
+               ret = -1;
                goto out;
        }
 
index 77023d342a1208aee0d0f956adf858baaf4a951b..5fb595ed88432c5f9c785a60e3d6c3a2070fbbee 100644 (file)
@@ -88,7 +88,7 @@ int umount_resctrlfs(void)
        if (umount(mountpoint)) {
                ksft_perror("Unable to umount resctrl");
 
-               return errno;
+               return -1;
        }
 
        return 0;