lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <87jz48khfr.fsf@oracle.com>
Date: Tue, 15 Jul 2025 19:17:28 -0700
From: Ankur Arora <ankur.a.arora@...cle.com>
To: Namhyung Kim <namhyung@...nel.org>
Cc: Ankur Arora <ankur.a.arora@...cle.com>, linux-kernel@...r.kernel.org,
        linux-mm@...ck.org, x86@...nel.org, akpm@...ux-foundation.org,
        david@...hat.com, bp@...en8.de, dave.hansen@...ux.intel.com,
        hpa@...or.com, mingo@...hat.com, mjguzik@...il.com, luto@...nel.org,
        peterz@...radead.org, acme@...nel.org, tglx@...utronix.de,
        willy@...radead.org, raghavendra.kt@....com,
        boris.ostrovsky@...cle.com, konrad.wilk@...cle.com
Subject: Re: [PATCH v5 02/14] perf bench mem: Defer type munging of size to
 float


Namhyung Kim <namhyung@...nel.org> writes:

> On Wed, Jul 09, 2025 at 05:59:14PM -0700, Ankur Arora wrote:
>> Do type conversion to double at the point of use.
>>
>> Signed-off-by: Ankur Arora <ankur.a.arora@...cle.com>
>
> Reviewed-by: Namhyung Kim <namhyung@...nel.org>
>
> A nitpick below.
>
>> ---
>>  tools/perf/bench/mem-functions.c | 14 +++++++-------
>>  1 file changed, 7 insertions(+), 7 deletions(-)
>>
>> diff --git a/tools/perf/bench/mem-functions.c b/tools/perf/bench/mem-functions.c
>> index 8599ed96ee1f..b8f020379197 100644
>> --- a/tools/perf/bench/mem-functions.c
>> +++ b/tools/perf/bench/mem-functions.c
>> @@ -139,7 +139,7 @@ struct bench_mem_info {
>>  	bool alloc_src;
>>  };
>>
>> -static void __bench_mem_function(struct bench_mem_info *info, int r_idx, size_t size, double size_total)
>> +static void __bench_mem_function(struct bench_mem_info *info, int r_idx, size_t size, size_t size_total)
>>  {
>>  	const struct function *r = &info->functions[r_idx];
>>  	double result_bps = 0.0;
>> @@ -165,18 +165,18 @@ static void __bench_mem_function(struct bench_mem_info *info, int r_idx, size_t
>>  	switch (bench_format) {
>>  	case BENCH_FORMAT_DEFAULT:
>>  		if (use_cycles) {
>> -			printf(" %14lf cycles/byte\n", (double)rt.cycles/size_total);
>> +			printf(" %14lf cycles/byte\n", (double)rt.cycles/(double)size_total);
>>  		} else {
>> -			result_bps = size_total/timeval2double(&rt.tv);
>> +			result_bps = (double)size_total/timeval2double(&rt.tv);
>>  			print_bps(result_bps);
>>  		}
>>  		break;
>>
>>  	case BENCH_FORMAT_SIMPLE:
>>  		if (use_cycles) {
>> -			printf("%lf\n", (double)rt.cycles/size_total);
>> +			printf("%lf\n", (double)rt.cycles/(double)size_total);
>>  		} else {
>> -			result_bps = size_total/timeval2double(&rt.tv);
>> +			result_bps = (double)size_total/timeval2double(&rt.tv);
>>  			printf("%lf\n", result_bps);
>>  		}
>>  		break;
>> @@ -199,7 +199,7 @@ static int bench_mem_common(int argc, const char **argv, struct bench_mem_info *
>>  {
>>  	int i;
>>  	size_t size;
>> -	double size_total;
>> +	size_t size_total;
>>
>>  	argc = parse_options(argc, argv, options, info->usage, 0);
>>
>> @@ -212,7 +212,7 @@ static int bench_mem_common(int argc, const char **argv, struct bench_mem_info *
>>  	}
>>
>>  	size = (size_t)perf_atoll((char *)size_str);
>> -	size_total = (double)size * nr_loops;
>> +	size_total = (size_t)size * nr_loops;
>
> No need to cast.

Ah, yes.

--
ankur

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ