mirror of
https://github.com/torvalds/linux.git
synced 2024-11-29 15:41:36 +00:00
selftests/resctrl: Don't hard code value of "no_of_bits" variable
Cache related tests (like CAT and CMT) depend on a variable called no_of_bits to run. no_of_bits defines the number of contiguous bits that should be set in the CBM mask and a user can pass a value for no_of_bits using -n command line argument. If a user hasn't passed any value, it defaults to 5 (randomly chosen value). Hard coding no_of_bits to 5 will make the cache tests fail to run on systems that support maximum cbm mask that is less than or equal to 5 bits. Hence, don't hard code no_of_bits value. If a user passes a value for "no_of_bits" using -n option, use it. Otherwise, no_of_bits is equal to half of the maximum number of bits in the cbm mask. Please note that CMT test is still hard coded to 5 bits. It will change in subsequent patches that change CMT test. Tested-by: Babu Moger <babu.moger@amd.com> Signed-off-by: Fenghua Yu <fenghua.yu@intel.com> Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
This commit is contained in:
parent
06bd03a57f
commit
09a6793462
@ -130,7 +130,10 @@ int cat_perf_miss_val(int cpu_no, int n, char *cache_type)
|
||||
/* Get max number of bits from default-cabm mask */
|
||||
count_of_bits = count_bits(long_mask);
|
||||
|
||||
if (n < 1 || n > count_of_bits - 1) {
|
||||
if (!n)
|
||||
n = count_of_bits / 2;
|
||||
|
||||
if (n > count_of_bits - 1) {
|
||||
ksft_print_msg("Invalid input value for no_of_bits n!\n");
|
||||
ksft_print_msg("Please enter value in range 1 to %d\n",
|
||||
count_of_bits - 1);
|
||||
|
@ -57,7 +57,7 @@ void tests_cleanup(void)
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
bool has_ben = false, mbm_test = true, mba_test = true, cmt_test = true;
|
||||
int res, c, cpu_no = 1, span = 250, argc_new = argc, i, no_of_bits = 5;
|
||||
int res, c, cpu_no = 1, span = 250, argc_new = argc, i, no_of_bits = 0;
|
||||
char *benchmark_cmd[BENCHMARK_ARGS], bw_report[64], bm_type[64];
|
||||
char benchmark_cmd_area[BENCHMARK_ARGS][BENCHMARK_ARG_SIZE];
|
||||
int ben_ind, ben_count, tests = 0;
|
||||
@ -110,6 +110,10 @@ int main(int argc, char **argv)
|
||||
break;
|
||||
case 'n':
|
||||
no_of_bits = atoi(optarg);
|
||||
if (no_of_bits <= 0) {
|
||||
printf("Bail out! invalid argument for no_of_bits\n");
|
||||
return -1;
|
||||
}
|
||||
break;
|
||||
case 'h':
|
||||
cmd_help();
|
||||
@ -188,7 +192,7 @@ int main(int argc, char **argv)
|
||||
ksft_print_msg("Starting CMT test ...\n");
|
||||
if (!has_ben)
|
||||
sprintf(benchmark_cmd[5], "%s", CMT_STR);
|
||||
res = cmt_resctrl_val(cpu_no, no_of_bits, benchmark_cmd);
|
||||
res = cmt_resctrl_val(cpu_no, 5, benchmark_cmd);
|
||||
ksft_test_result(!res, "CMT: test\n");
|
||||
cmt_test_cleanup();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user