selftests/resctrl: fix clang build warnings related to abs(), labs() calls
authorJohn Hubbard <jhubbard@nvidia.com>
Wed, 8 May 2024 20:41:01 +0000 (13:41 -0700)
committerShuah Khan <skhan@linuxfoundation.org>
Wed, 8 May 2024 22:53:19 +0000 (16:53 -0600)
When building with clang, via:

    make LLVM=1 -C tools/testing/selftests

...two types of warnings occur:

    warning: absolute value function 'abs' given an argument of type
    'long' but has parameter of type 'int' which may cause truncation of
    value

    warning: taking the absolute value of unsigned type 'unsigned long'
    has no effect

Fix these by:

a) using labs() in place of abs(), when long integers are involved, and

b) Change to use signed integer data types, in places where subtraction
   is used (and could end up with negative values).

c) Remove a duplicate abs() call in cmt_test.c.

Cc: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Reviewed-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John Hubbard <jhubbard@nvidia.com>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
tools/testing/selftests/resctrl/cmt_test.c
tools/testing/selftests/resctrl/mba_test.c
tools/testing/selftests/resctrl/mbm_test.c

index a44e6fcd37b73578cfa1d58b549a0ca59f230ea1..0105afec6188aecd64216b2eac090328cc5ec5d2 100644 (file)
@@ -40,11 +40,11 @@ static int show_results_info(unsigned long sum_llc_val, int no_of_bits,
        int ret;
 
        avg_llc_val = sum_llc_val / num_of_runs;
-       avg_diff = (long)abs(cache_span - avg_llc_val);
+       avg_diff = (long)(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 &&
-             abs(avg_diff) > max_diff;
+             labs(avg_diff) > max_diff;
 
        ksft_print_msg("%s Check cache miss rate within %lu%%\n",
                       ret ? "Fail:" : "Pass:", max_diff_percent);
index 5d6af9e8afedd1d39156ce6118fac1c46d17e945..a6ad39aae1623ea693b4e6bb08aa630a2d7b2b2f 100644 (file)
@@ -60,8 +60,8 @@ static bool show_mba_info(unsigned long *bw_imc, unsigned long *bw_resc)
        /* Memory bandwidth from 100% down to 10% */
        for (allocation = 0; allocation < ALLOCATION_MAX / ALLOCATION_STEP;
             allocation++) {
-               unsigned long avg_bw_imc, avg_bw_resc;
                unsigned long sum_bw_imc = 0, sum_bw_resc = 0;
+               long avg_bw_imc, avg_bw_resc;
                int avg_diff_per;
                float avg_diff;
 
index 3059ccc51a5ab027c144ebb21e3e89e8fac7da2a..6fec51e1ff465265b71ca486c320c2b98b42e2e0 100644 (file)
@@ -17,8 +17,8 @@
 static int
 show_bw_info(unsigned long *bw_imc, unsigned long *bw_resc, size_t span)
 {
-       unsigned long avg_bw_imc = 0, avg_bw_resc = 0;
        unsigned long sum_bw_imc = 0, sum_bw_resc = 0;
+       long avg_bw_imc = 0, avg_bw_resc = 0;
        int runs, ret, avg_diff_per;
        float avg_diff = 0;