On Fri, 27 Mar 2026, Reinette Chatre wrote: > Hi Ilpo, > > On 3/27/26 10:45 AM, Ilpo Järvinen wrote: > > On Fri, 13 Mar 2026, Reinette Chatre wrote: > >> -/* > >> - * Minimum difference in LLC misses between a test with n+1 bits CBM to the > >> - * test with n bits is MIN_DIFF_PERCENT_PER_BIT * (n - 1). With e.g. 5 vs 4 > >> - * bits in the CBM mask, the minimum difference must be at least > >> - * MIN_DIFF_PERCENT_PER_BIT * (4 - 1) = 3 percent. > >> - * > >> - * The relationship between number of used CBM bits and difference in LLC > >> - * misses is not expected to be linear. With a small number of bits, the > >> - * margin is smaller than with larger number of bits. For selftest purposes, > >> - * however, linear approach is enough because ultimately only pass/fail > >> - * decision has to be made and distinction between strong and stronger > >> - * signal is irrelevant. > >> - */ > >> -#define MIN_DIFF_PERCENT_PER_BIT 1UL > >> - > >> static int show_results_info(__u64 sum_llc_val, int no_of_bits, > >> unsigned long cache_span, > >> - unsigned long min_diff_percent, > >> unsigned long num_of_runs, bool platform, > >> __s64 *prev_avg_llc_val) > >> { > >> __u64 avg_llc_val = 0; > >> - float avg_diff; > >> int ret = 0; > >> > >> avg_llc_val = sum_llc_val / num_of_runs; > >> if (*prev_avg_llc_val) { > >> - float delta = (__s64)(avg_llc_val - *prev_avg_llc_val); > >> - > >> - avg_diff = delta / *prev_avg_llc_val; > >> - ret = platform && (avg_diff * 100) < (float)min_diff_percent; > >> - > >> - ksft_print_msg("%s Check cache miss rate changed more than %.1f%%\n", > >> - ret ? "Fail:" : "Pass:", (float)min_diff_percent); > >> + ret = platform && (avg_llc_val < *prev_avg_llc_val); > >> > >> - ksft_print_msg("Percent diff=%.1f\n", avg_diff * 100); > >> + ksft_print_msg("%s Check cache miss rate increased\n", > >> + ret ? "Fail:" : "Pass:"); > > > > While I'm fine with removing the amount of change check, this no longer > > shows any numbers which would be a bit annoying if/when there's a failure. > > > > This snippet only removes display of the number that is no longer computed ("avg_diff"). > The values that are compared now, avg_llc_val and it previous value, are printed > in the call to show_cache_info() that follows this snippet but is not visible in the diff. > > Below is an example of what a user running the CAT test will see after these changes. > Since show_cache_info() always prints avg_llc_val the user can obtain insight into failure > by considering it and its previous measurement. > > # Starting L3_CAT test ... > # Mounting resctrl to "/sys/fs/resctrl" > # Cache size :117964800 > # Writing benchmark parameters to resctrl FS > # Write schema "L2:1=0x1" to resctrl FS > # Write schema "L3:0=1fc0" to resctrl FS > # Write schema "L3:0=3f" to resctrl FS > # Write schema "L3:0=1ff0" to resctrl FS > # Write schema "L3:0=f" to resctrl FS > # Write schema "L3:0=1ffc" to resctrl FS > # Write schema "L3:0=3" to resctrl FS > # Checking for pass/fail > # Number of bits: 6 > # Average LLC val: 445092 > # Cache span (lines): 737280 > # Pass: Check cache miss rate increased > # Number of bits: 4 > # Average LLC val: 724472 > # Cache span (lines): 491520 > # Pass: Check cache miss rate increased > # Number of bits: 2 > # Average LLC val: 1085470 > # Cache span (lines): 245760 > ok 4 L3_CAT: test Okay, I didn't remember there was another place printing the numbers. No problem with this then, Reviewed-by: Ilpo Järvinen -- i.