From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D9CA312B89 for ; Fri, 3 May 2024 08:01:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.18 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714723265; cv=none; b=B/qmt4ApFnYNiskGV2C9nGE8Svtkr058eZmDZnnusQifG8O0n5IKKkPcCF5rYU5cAVqyYTttbEnaZc0Qfn35d6/qM8XBiz5SnYJf7Dm5hLJxZPzoEWUR6eQKo4GVDncH4CUbuiakEfVdzM34u5NWSEjPn/PUf1tyNdGC1hY7Nsw= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714723265; c=relaxed/simple; bh=TO5f2lnqO/3Ie6pc6C92Bo2q513ZSZunZDH/5RorKxg=; h=From:Date:To:cc:Subject:In-Reply-To:Message-ID:References: MIME-Version:Content-Type; b=IXq99IxAVBFCek76g9zZtnAYcAaji7H+J/rXYky7GKSI3P/FoNjPEwP4tOBOdDc/0QPaHlsmrmHDvcFF3IWWc41e0cCSAKOJw33krJLmk1QpI95nIksIEDk/bEcv1NNtQjnIzCEOCyXRUQmeeBBCF2mBzOBO7e38ycNIWqad/+Q= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com; spf=none smtp.mailfrom=linux.intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=T9uBq+cA; arc=none smtp.client-ip=198.175.65.18 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="T9uBq+cA" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1714723264; x=1746259264; h=from:date:to:cc:subject:in-reply-to:message-id: references:mime-version; bh=TO5f2lnqO/3Ie6pc6C92Bo2q513ZSZunZDH/5RorKxg=; b=T9uBq+cA1rmui9crWZLCsB78fVR+z6RqriXCltdSxmWwi+IEOEgzNRon mWTNQ6f8+gMM97pufe5VPYb2+4DnITym7qbwCdyDpwl8+0Wf/RXtDZpqJ YBw+FV3ndg3EMlshph/yymla31AFGlBe9P3o8ApiMZC1YbaoGMFtgW6n4 7kC5jMgrWPki9oEjqJzRztEghIgjpvs3ONVDNtwcGLFyVoVnTKptrrbx8 i9QUFlExw6u0QGgoBqZzwlgPDkzv0HC/z5iL5ADQSrrysxLKNeEYPqBGs y/2HeSrvrQ8+5j/K6eBdgzhaS54wdTP0SiS8yjioMElzhFzEQoT9JZ9nw g==; X-CSE-ConnectionGUID: gjtoelJxRaWfWJrdSwTkeQ== X-CSE-MsgGUID: 7woAr0TmTEmsMrSD2aON9A== X-IronPort-AV: E=McAfee;i="6600,9927,11062"; a="10683631" X-IronPort-AV: E=Sophos;i="6.07,247,1708416000"; d="scan'208";a="10683631" Received: from orviesa001.jf.intel.com ([10.64.159.141]) by orvoesa110.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 May 2024 01:01:04 -0700 X-CSE-ConnectionGUID: IwrodcDXRfODX6qLeczlWw== X-CSE-MsgGUID: z+a5zPNGTtSwGUSowE6FSA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.07,247,1708416000"; d="scan'208";a="64836547" Received: from ijarvine-desk1.ger.corp.intel.com (HELO localhost) ([10.245.247.56]) by smtpauth.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 May 2024 01:01:00 -0700 From: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= Date: Fri, 3 May 2024 11:00:53 +0300 (EEST) To: John Hubbard cc: Shuah Khan , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , Fenghua Yu , Reinette Chatre , Valentin Obst , linux-kselftest@vger.kernel.org, LKML , llvm@lists.linux.dev Subject: Re: [PATCH] selftests/resctrl: fix clang build warnings related to abs(), labs() calls In-Reply-To: <20240503023209.80787-1-jhubbard@nvidia.com> Message-ID: <793bd068-c3b4-6330-41a4-bea597b1d820@linux.intel.com> References: <20240503023209.80787-1-jhubbard@nvidia.com> Precedence: bulk X-Mailing-List: llvm@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII On Thu, 2 May 2024, John Hubbard wrote: > First of all, in order to build with clang at all, one must first apply > Valentin Obst's build fix for LLVM [1]. Furthermore, for this particular > resctrl directory, my pending fix [2] must also be applied. Once those > fixes are in place, then 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) don't call labs() unnecessarily. > > [1] https://lore.kernel.org/all/20240329-selftests-libmk-llvm-rfc-v1-1-2f9ed7d1c49f@valentinobst.de/ > [2] https://lore.kernel.org/all/20240503021712.78601-1-jhubbard@nvidia.com/ > > Signed-off-by: John Hubbard > --- > tools/testing/selftests/resctrl/cmt_test.c | 4 ++-- > tools/testing/selftests/resctrl/mba_test.c | 2 +- > tools/testing/selftests/resctrl/mbm_test.c | 2 +- > 3 files changed, 4 insertions(+), 4 deletions(-) > > diff --git a/tools/testing/selftests/resctrl/cmt_test.c b/tools/testing/selftests/resctrl/cmt_test.c > index a81f91222a89..05a241519ae8 100644 > --- a/tools/testing/selftests/resctrl/cmt_test.c > +++ b/tools/testing/selftests/resctrl/cmt_test.c > @@ -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); This seems fine but... > diff --git a/tools/testing/selftests/resctrl/mba_test.c b/tools/testing/selftests/resctrl/mba_test.c > index 7946e32e85c8..673b2bb800f7 100644 > --- a/tools/testing/selftests/resctrl/mba_test.c > +++ b/tools/testing/selftests/resctrl/mba_test.c > @@ -77,7 +77,7 @@ static bool show_mba_info(unsigned long *bw_imc, unsigned long *bw_resc) > > avg_bw_imc = sum_bw_imc / (NUM_OF_RUNS - 1); > avg_bw_resc = sum_bw_resc / (NUM_OF_RUNS - 1); > - 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); > > ksft_print_msg("%s Check MBA diff within %d%% for schemata %u\n", > 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? -- i.