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@linux.intel.com
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