Hi Ilpo, On 10/24/2023 2:26 AM, Ilpo Järvinen wrote: > show_cache_info() calculates results and provides generic cache > information. This makes it hard to alter pass/fail conditions. > > Separate the test specific checks into CAT and CMT test files and > leave only the generic information part into show_cache_info(). > > Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@xxxxxxxxxxxxxxx> > --- > tools/testing/selftests/resctrl/cache.c | 40 ++++------------------ > tools/testing/selftests/resctrl/cat_test.c | 30 ++++++++++++++-- > tools/testing/selftests/resctrl/cmt_test.c | 32 +++++++++++++++-- > tools/testing/selftests/resctrl/resctrl.h | 6 ++-- > 4 files changed, 65 insertions(+), 43 deletions(-) > > diff --git a/tools/testing/selftests/resctrl/cache.c b/tools/testing/selftests/resctrl/cache.c > index 299d9508221f..95489d4b42b7 100644 > --- a/tools/testing/selftests/resctrl/cache.c > +++ b/tools/testing/selftests/resctrl/cache.c > @@ -267,43 +267,17 @@ int cat_val(struct resctrl_val_param *param, size_t span) > } > > /* > - * show_cache_info: show cache test result information > - * @sum_llc_val: sum of LLC cache result data > + * show_cache_info: show generic cache test information > * @no_of_bits: number of bits > - * @cache_span: cache span in bytes for CMT or in lines for CAT > - * @max_diff: max difference > - * @max_diff_percent: max difference percentage > - * @num_of_runs: number of runs > - * @platform: show test information on this platform > - * @cmt: CMT test or CAT test > - * > - * Return: 0 on success. non-zero on failure. > + * @avg_llc_val: avg of LLC cache result data > + * @cache_span: cache span > + * @lines: cache span in lines or bytes It may be helpful to directly connect it to the other parameter: @cache_span in lines or bytes > */ > -int show_cache_info(unsigned long sum_llc_val, int no_of_bits, > - size_t cache_span, unsigned long max_diff, > - unsigned long max_diff_percent, unsigned long num_of_runs, > - bool platform, bool cmt) > +void show_cache_info(int no_of_bits, unsigned long avg_llc_val, > + size_t cache_span, bool lines) > { > - unsigned long avg_llc_val = 0; > - float diff_percent; > - long avg_diff = 0; > - int ret; > - > - avg_llc_val = sum_llc_val / num_of_runs; > - avg_diff = (long)abs(cache_span - avg_llc_val); > - diff_percent = ((float)cache_span - avg_llc_val) / cache_span * 100; > - > - ret = platform && abs((int)diff_percent) > max_diff_percent && > - (cmt ? (abs(avg_diff) > max_diff) : true); > - > - ksft_print_msg("%s Check cache miss rate within %lu%%\n", > - ret ? "Fail:" : "Pass:", max_diff_percent); > - > - ksft_print_msg("Percent diff=%d\n", abs((int)diff_percent)); > ksft_print_msg("Number of bits: %d\n", no_of_bits); > ksft_print_msg("Average LLC val: %lu\n", avg_llc_val); > - ksft_print_msg("Cache span (%s): %zu\n", cmt ? "bytes" : "lines", > + ksft_print_msg("Cache span (%s): %zu\n", !lines ? "bytes" : "lines", > cache_span); I think it would be easier to read as: lines ? "lines" : "bytes" Reinette