Re: [PATCH] selftests/resctrl: fix clang build warnings related to abs(), labs() calls

From: John Hubbard
Date: Fri May 03 2024 - 12:53:11 EST


On 5/3/24 1:00 AM, Ilpo Järvinen wrote:
On Thu, 2 May 2024, John Hubbard wrote:
..
diff --git a/tools/testing/selftests/resctrl/mbm_test.c b/tools/testing/selftests/resctrl/mbm_test.c
index d67ffa3ec63a..c873793d016d 100644
--- a/tools/testing/selftests/resctrl/mbm_test.c
+++ b/tools/testing/selftests/resctrl/mbm_test.c
@@ -33,7 +33,7 @@ show_bw_info(unsigned long *bw_imc, unsigned long *bw_resc, size_t span)
avg_bw_imc = sum_bw_imc / 4;
avg_bw_resc = sum_bw_resc / 4;
- avg_diff = (float)labs(avg_bw_resc - avg_bw_imc) / avg_bw_imc;
+ avg_diff = (float)(avg_bw_resc - avg_bw_imc) / avg_bw_imc;
avg_diff_per = (int)(avg_diff * 100);
ret = avg_diff_per > MAX_DIFF_PERCENT;

But how are these two cases same after your change when you ended up
removing taking the absolute value entirely?

All of the arguments are unsigned integers, so all arithmetic results
are interpreted as unsigned, so taking the absolute value of that is
always a no-op.

thanks,
--
John Hubbard
NVIDIA