|
Takashi Iwai |
0661ff |
From fa10366cc6f4cc862871f8938426d85c2481f084 Mon Sep 17 00:00:00 2001
|
|
Takashi Iwai |
0661ff |
From: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= <ilpo.jarvinen@linux.intel.com>
|
|
Takashi Iwai |
0661ff |
Date: Wed, 15 Feb 2023 15:05:59 +0200
|
|
Takashi Iwai |
0661ff |
Subject: [PATCH] selftests/resctrl: Allow ->setup() to return errors
|
|
Takashi Iwai |
0661ff |
Mime-version: 1.0
|
|
Takashi Iwai |
0661ff |
Content-type: text/plain; charset=UTF-8
|
|
Takashi Iwai |
0661ff |
Content-transfer-encoding: 8bit
|
|
Takashi Iwai |
0661ff |
Git-commit: fa10366cc6f4cc862871f8938426d85c2481f084
|
|
Takashi Iwai |
0661ff |
Patch-mainline: v6.4-rc1
|
|
Takashi Iwai |
0661ff |
References: git-fixes
|
|
Takashi Iwai |
0661ff |
|
|
Takashi Iwai |
0661ff |
resctrl_val() assumes ->setup() always returns either 0 to continue
|
|
Takashi Iwai |
0661ff |
tests or < 0 in case of the normal termination of tests after x runs.
|
|
Takashi Iwai |
0661ff |
The latter overlaps with normal error returns.
|
|
Takashi Iwai |
0661ff |
|
|
Takashi Iwai |
0661ff |
Define END_OF_TESTS (=1) to differentiate the normal termination of
|
|
Takashi Iwai |
0661ff |
tests and return errors as negative values. Alter callers of ->setup()
|
|
Takashi Iwai |
0661ff |
to handle errors properly.
|
|
Takashi Iwai |
0661ff |
|
|
Takashi Iwai |
0661ff |
Fixes: 790bf585b0ee ("selftests/resctrl: Add Cache Allocation Technology (CAT) selftest")
|
|
Takashi Iwai |
0661ff |
Fixes: ecdbb911f22d ("selftests/resctrl: Add MBM test")
|
|
Takashi Iwai |
0661ff |
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
|
|
Takashi Iwai |
0661ff |
Reviewed-by: Reinette Chatre <reinette.chatre@intel.com>
|
|
Takashi Iwai |
0661ff |
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
|
|
Takashi Iwai |
0661ff |
Acked-by: Takashi Iwai <tiwai@suse.de>
|
|
Takashi Iwai |
0661ff |
|
|
Takashi Iwai |
0661ff |
---
|
|
Takashi Iwai |
0661ff |
tools/testing/selftests/resctrl/cache.c | 4 +++-
|
|
Takashi Iwai |
0661ff |
tools/testing/selftests/resctrl/cat_test.c | 2 +-
|
|
Takashi Iwai |
0661ff |
tools/testing/selftests/resctrl/cmt_test.c | 2 +-
|
|
Takashi Iwai |
0661ff |
tools/testing/selftests/resctrl/mba_test.c | 2 +-
|
|
Takashi Iwai |
0661ff |
tools/testing/selftests/resctrl/mbm_test.c | 2 +-
|
|
Takashi Iwai |
0661ff |
tools/testing/selftests/resctrl/resctrl.h | 2 ++
|
|
Takashi Iwai |
0661ff |
tools/testing/selftests/resctrl/resctrl_val.c | 4 +++-
|
|
Takashi Iwai |
0661ff |
7 files changed, 12 insertions(+), 6 deletions(-)
|
|
Takashi Iwai |
0661ff |
|
|
Takashi Iwai |
0661ff |
diff --git a/tools/testing/selftests/resctrl/cache.c b/tools/testing/selftests/resctrl/cache.c
|
|
Takashi Iwai |
0661ff |
index 68ff856d36f0..0485863a169f 100644
|
|
Takashi Iwai |
0661ff |
--- a/tools/testing/selftests/resctrl/cache.c
|
|
Takashi Iwai |
0661ff |
+++ b/tools/testing/selftests/resctrl/cache.c
|
|
Takashi Iwai |
0661ff |
@@ -244,10 +244,12 @@ int cat_val(struct resctrl_val_param *param)
|
|
Takashi Iwai |
0661ff |
while (1) {
|
|
Takashi Iwai |
0661ff |
if (!strncmp(resctrl_val, CAT_STR, sizeof(CAT_STR))) {
|
|
Takashi Iwai |
0661ff |
ret = param->setup(1, param);
|
|
Takashi Iwai |
0661ff |
- if (ret) {
|
|
Takashi Iwai |
0661ff |
+ if (ret == END_OF_TESTS) {
|
|
Takashi Iwai |
0661ff |
ret = 0;
|
|
Takashi Iwai |
0661ff |
break;
|
|
Takashi Iwai |
0661ff |
}
|
|
Takashi Iwai |
0661ff |
+ if (ret < 0)
|
|
Takashi Iwai |
0661ff |
+ break;
|
|
Takashi Iwai |
0661ff |
ret = reset_enable_llc_perf(bm_pid, param->cpu_no);
|
|
Takashi Iwai |
0661ff |
if (ret)
|
|
Takashi Iwai |
0661ff |
break;
|
|
Takashi Iwai |
0661ff |
diff --git a/tools/testing/selftests/resctrl/cat_test.c b/tools/testing/selftests/resctrl/cat_test.c
|
|
Takashi Iwai |
0661ff |
index 1c5e90c63254..2d3c7c77ab6c 100644
|
|
Takashi Iwai |
0661ff |
--- a/tools/testing/selftests/resctrl/cat_test.c
|
|
Takashi Iwai |
0661ff |
+++ b/tools/testing/selftests/resctrl/cat_test.c
|
|
Takashi Iwai |
0661ff |
@@ -40,7 +40,7 @@ static int cat_setup(int num, ...)
|
|
Takashi Iwai |
0661ff |
|
|
Takashi Iwai |
0661ff |
/* Run NUM_OF_RUNS times */
|
|
Takashi Iwai |
0661ff |
if (p->num_of_runs >= NUM_OF_RUNS)
|
|
Takashi Iwai |
0661ff |
- return -1;
|
|
Takashi Iwai |
0661ff |
+ return END_OF_TESTS;
|
|
Takashi Iwai |
0661ff |
|
|
Takashi Iwai |
0661ff |
if (p->num_of_runs == 0) {
|
|
Takashi Iwai |
0661ff |
sprintf(schemata, "%lx", p->mask);
|
|
Takashi Iwai |
0661ff |
diff --git a/tools/testing/selftests/resctrl/cmt_test.c b/tools/testing/selftests/resctrl/cmt_test.c
|
|
Takashi Iwai |
0661ff |
index 8968e36db99d..3b0454e7fc82 100644
|
|
Takashi Iwai |
0661ff |
--- a/tools/testing/selftests/resctrl/cmt_test.c
|
|
Takashi Iwai |
0661ff |
+++ b/tools/testing/selftests/resctrl/cmt_test.c
|
|
Takashi Iwai |
0661ff |
@@ -32,7 +32,7 @@ static int cmt_setup(int num, ...)
|
|
Takashi Iwai |
0661ff |
|
|
Takashi Iwai |
0661ff |
/* Run NUM_OF_RUNS times */
|
|
Takashi Iwai |
0661ff |
if (p->num_of_runs >= NUM_OF_RUNS)
|
|
Takashi Iwai |
0661ff |
- return -1;
|
|
Takashi Iwai |
0661ff |
+ return END_OF_TESTS;
|
|
Takashi Iwai |
0661ff |
|
|
Takashi Iwai |
0661ff |
p->num_of_runs++;
|
|
Takashi Iwai |
0661ff |
|
|
Takashi Iwai |
0661ff |
diff --git a/tools/testing/selftests/resctrl/mba_test.c b/tools/testing/selftests/resctrl/mba_test.c
|
|
Takashi Iwai |
0661ff |
index 1a1bdb6180cf..f32289ae17ae 100644
|
|
Takashi Iwai |
0661ff |
--- a/tools/testing/selftests/resctrl/mba_test.c
|
|
Takashi Iwai |
0661ff |
+++ b/tools/testing/selftests/resctrl/mba_test.c
|
|
Takashi Iwai |
0661ff |
@@ -41,7 +41,7 @@ static int mba_setup(int num, ...)
|
|
Takashi Iwai |
0661ff |
return 0;
|
|
Takashi Iwai |
0661ff |
|
|
Takashi Iwai |
0661ff |
if (allocation < ALLOCATION_MIN || allocation > ALLOCATION_MAX)
|
|
Takashi Iwai |
0661ff |
- return -1;
|
|
Takashi Iwai |
0661ff |
+ return END_OF_TESTS;
|
|
Takashi Iwai |
0661ff |
|
|
Takashi Iwai |
0661ff |
sprintf(allocation_str, "%d", allocation);
|
|
Takashi Iwai |
0661ff |
|
|
Takashi Iwai |
0661ff |
diff --git a/tools/testing/selftests/resctrl/mbm_test.c b/tools/testing/selftests/resctrl/mbm_test.c
|
|
Takashi Iwai |
0661ff |
index 8392e5c55ed0..280187628054 100644
|
|
Takashi Iwai |
0661ff |
--- a/tools/testing/selftests/resctrl/mbm_test.c
|
|
Takashi Iwai |
0661ff |
+++ b/tools/testing/selftests/resctrl/mbm_test.c
|
|
Takashi Iwai |
0661ff |
@@ -95,7 +95,7 @@ static int mbm_setup(int num, ...)
|
|
Takashi Iwai |
0661ff |
|
|
Takashi Iwai |
0661ff |
/* Run NUM_OF_RUNS times */
|
|
Takashi Iwai |
0661ff |
if (num_of_runs++ >= NUM_OF_RUNS)
|
|
Takashi Iwai |
0661ff |
- return -1;
|
|
Takashi Iwai |
0661ff |
+ return END_OF_TESTS;
|
|
Takashi Iwai |
0661ff |
|
|
Takashi Iwai |
0661ff |
va_start(param, num);
|
|
Takashi Iwai |
0661ff |
p = va_arg(param, struct resctrl_val_param *);
|
|
Takashi Iwai |
0661ff |
diff --git a/tools/testing/selftests/resctrl/resctrl.h b/tools/testing/selftests/resctrl/resctrl.h
|
|
Takashi Iwai |
0661ff |
index f0ded31fb3c7..f44fa2de4d98 100644
|
|
Takashi Iwai |
0661ff |
--- a/tools/testing/selftests/resctrl/resctrl.h
|
|
Takashi Iwai |
0661ff |
+++ b/tools/testing/selftests/resctrl/resctrl.h
|
|
Takashi Iwai |
0661ff |
@@ -37,6 +37,8 @@
|
|
Takashi Iwai |
0661ff |
#define ARCH_INTEL 1
|
|
Takashi Iwai |
0661ff |
#define ARCH_AMD 2
|
|
Takashi Iwai |
0661ff |
|
|
Takashi Iwai |
0661ff |
+#define END_OF_TESTS 1
|
|
Takashi Iwai |
0661ff |
+
|
|
Takashi Iwai |
0661ff |
#define PARENT_EXIT(err_msg) \
|
|
Takashi Iwai |
0661ff |
do { \
|
|
Takashi Iwai |
0661ff |
perror(err_msg); \
|
|
Takashi Iwai |
0661ff |
diff --git a/tools/testing/selftests/resctrl/resctrl_val.c b/tools/testing/selftests/resctrl/resctrl_val.c
|
|
Takashi Iwai |
0661ff |
index 787546a52849..00864242d76c 100644
|
|
Takashi Iwai |
0661ff |
--- a/tools/testing/selftests/resctrl/resctrl_val.c
|
|
Takashi Iwai |
0661ff |
+++ b/tools/testing/selftests/resctrl/resctrl_val.c
|
|
Takashi Iwai |
0661ff |
@@ -735,10 +735,12 @@ int resctrl_val(char **benchmark_cmd, struct resctrl_val_param *param)
|
|
Takashi Iwai |
0661ff |
/* Test runs until the callback setup() tells the test to stop. */
|
|
Takashi Iwai |
0661ff |
while (1) {
|
|
Takashi Iwai |
0661ff |
ret = param->setup(1, param);
|
|
Takashi Iwai |
0661ff |
- if (ret) {
|
|
Takashi Iwai |
0661ff |
+ if (ret == END_OF_TESTS) {
|
|
Takashi Iwai |
0661ff |
ret = 0;
|
|
Takashi Iwai |
0661ff |
break;
|
|
Takashi Iwai |
0661ff |
}
|
|
Takashi Iwai |
0661ff |
+ if (ret < 0)
|
|
Takashi Iwai |
0661ff |
+ break;
|
|
Takashi Iwai |
0661ff |
|
|
Takashi Iwai |
0661ff |
if (!strncmp(resctrl_val, MBM_STR, sizeof(MBM_STR)) ||
|
|
Takashi Iwai |
0661ff |
!strncmp(resctrl_val, MBA_STR, sizeof(MBA_STR))) {
|
|
Takashi Iwai |
0661ff |
--
|
|
Takashi Iwai |
0661ff |
2.35.3
|
|
Takashi Iwai |
0661ff |
|