]> www.infradead.org Git - users/hch/misc.git/commitdiff
perf bench mem: Defer type munging of size to float
authorAnkur Arora <ankur.a.arora@oracle.com>
Wed, 17 Sep 2025 15:24:04 +0000 (08:24 -0700)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Fri, 19 Sep 2025 15:42:40 +0000 (12:42 -0300)
Do type conversion to double at the point of use.

Reviewed-by: Namhyung Kim <namhyung@kernel.org>
Signed-off-by: Ankur Arora <ankur.a.arora@oracle.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: David Hildenbrand <david@redhat.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: Mateusz Guzik <mjguzik@gmail.com>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Raghavendra K T <raghavendra.kt@amd.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/r/20250917152418.4077386-3-ankur.a.arora@oracle.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/bench/mem-functions.c

index 8599ed96ee1f608cffd588d4375788ae65c10eae..fddb2acd2d3a43c4d2135a06de2c75c278170a44 100644 (file)
@@ -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 * nr_loops;
 
        if ((s64)size <= 0) {
                fprintf(stderr, "Invalid size:%s\n", size_str);