Commit fa10366c authored by Ilpo Järvinen's avatar Ilpo Järvinen Committed by Shuah Khan
Browse files

selftests/resctrl: Allow ->setup() to return errors



resctrl_val() assumes ->setup() always returns either 0 to continue
tests or < 0 in case of the normal termination of tests after x runs.
The latter overlaps with normal error returns.

Define END_OF_TESTS (=1) to differentiate the normal termination of
tests and return errors as negative values. Alter callers of ->setup()
to handle errors properly.

Fixes: 790bf585 ("selftests/resctrl: Add Cache Allocation Technology (CAT) selftest")
Fixes: ecdbb911 ("selftests/resctrl: Add MBM test")
Signed-off-by: default avatarIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Reviewed-by: default avatarReinette Chatre <reinette.chatre@intel.com>
Signed-off-by: default avatarShuah Khan <skhan@linuxfoundation.org>
parent c90b3b58
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -244,10 +244,12 @@ int cat_val(struct resctrl_val_param *param)
	while (1) {
		if (!strncmp(resctrl_val, CAT_STR, sizeof(CAT_STR))) {
			ret = param->setup(1, param);
			if (ret) {
			if (ret == END_OF_TESTS) {
				ret = 0;
				break;
			}
			if (ret < 0)
				break;
			ret = reset_enable_llc_perf(bm_pid, param->cpu_no);
			if (ret)
				break;
+1 −1
Original line number Diff line number Diff line
@@ -40,7 +40,7 @@ static int cat_setup(int num, ...)

	/* Run NUM_OF_RUNS times */
	if (p->num_of_runs >= NUM_OF_RUNS)
		return -1;
		return END_OF_TESTS;

	if (p->num_of_runs == 0) {
		sprintf(schemata, "%lx", p->mask);
+1 −1
Original line number Diff line number Diff line
@@ -32,7 +32,7 @@ static int cmt_setup(int num, ...)

	/* Run NUM_OF_RUNS times */
	if (p->num_of_runs >= NUM_OF_RUNS)
		return -1;
		return END_OF_TESTS;

	p->num_of_runs++;

+1 −1
Original line number Diff line number Diff line
@@ -41,7 +41,7 @@ static int mba_setup(int num, ...)
		return 0;

	if (allocation < ALLOCATION_MIN || allocation > ALLOCATION_MAX)
		return -1;
		return END_OF_TESTS;

	sprintf(allocation_str, "%d", allocation);

+1 −1
Original line number Diff line number Diff line
@@ -95,7 +95,7 @@ static int mbm_setup(int num, ...)

	/* Run NUM_OF_RUNS times */
	if (num_of_runs++ >= NUM_OF_RUNS)
		return -1;
		return END_OF_TESTS;

	va_start(param, num);
	p = va_arg(param, struct resctrl_val_param *);
Loading