From b140abd1fda3e2e2c8e5d5bf46923787d3e6f008 Mon Sep 17 00:00:00 2001 From: Daniel Pouzzner Date: Thu, 3 Nov 2022 13:48:51 -0500 Subject: [PATCH] wolfcrypt/benchmark/benchmark.c: add check_for_excessive_stime() and remove double declaration of base_rusage and cur_rusage. --- wolfcrypt/benchmark/benchmark.c | 80 +++++++++++---------------------- 1 file changed, 27 insertions(+), 53 deletions(-) diff --git a/wolfcrypt/benchmark/benchmark.c b/wolfcrypt/benchmark/benchmark.c index bf36e7a54..c12aba2ae 100644 --- a/wolfcrypt/benchmark/benchmark.c +++ b/wolfcrypt/benchmark/benchmark.c @@ -1059,6 +1059,11 @@ static const char* bench_desc_words[][15] = { double current_time(int reset); #endif +#ifdef LINUX_RUSAGE_UTIME + static void check_for_excessive_stime(const char *desc, + const char *desc_extra); +#endif + #if defined(DEBUG_WOLFSSL) && !defined(HAVE_VALGRIND) && \ !defined(HAVE_STACK_SIZE) #ifdef __cplusplus @@ -1619,14 +1624,6 @@ static WC_INLINE int bench_stats_check(double start) } -#ifdef LINUX_RUSAGE_UTIME - #include - #include - - static struct rusage base_rusage; - static struct rusage cur_rusage; -#endif - /* countSz is number of bytes that 1 count represents. Normally bench_size, * except for AES direct that operates on AES_BLOCK_SIZE blocks */ static void bench_stats_sym_finish(const char* desc, int useDeviceID, int count, @@ -1642,21 +1639,7 @@ static void bench_stats_sym_finish(const char* desc, int useDeviceID, int count, total = current_time(0) - start; #ifdef LINUX_RUSAGE_UTIME - { - double start_utime = (double)base_rusage.ru_utime.tv_sec + - (double)base_rusage.ru_utime.tv_usec / 1000000.0; - double start_stime = (double)base_rusage.ru_stime.tv_sec + - (double)base_rusage.ru_stime.tv_usec / 1000000.0; - double cur_utime = (double)cur_rusage.ru_utime.tv_sec + - (double)cur_rusage.ru_utime.tv_usec / 1000000.0; - double cur_stime = (double)cur_rusage.ru_stime.tv_sec + - (double)cur_rusage.ru_stime.tv_usec / 1000000.0; - double stime_utime_ratio = - (cur_stime - start_stime) / (cur_utime - start_utime); - if (stime_utime_ratio > .1) - printf("%swarning, excessive system time ratio for %s (%.3f%%).\n", - err_prefix, desc, stime_utime_ratio * 100.0); - } + check_for_excessive_stime(desc, ""); #endif /* calculate actual bytes */ @@ -1787,21 +1770,7 @@ static void bench_stats_asym_finish_ex(const char* algo, int strength, total = current_time(0) - start; #ifdef LINUX_RUSAGE_UTIME - { - double start_utime = (double)base_rusage.ru_utime.tv_sec + - (double)base_rusage.ru_utime.tv_usec / 1000000.0; - double start_stime = (double)base_rusage.ru_stime.tv_sec + - (double)base_rusage.ru_stime.tv_usec / 1000000.0; - double cur_utime = (double)cur_rusage.ru_utime.tv_sec + - (double)cur_rusage.ru_utime.tv_usec / 1000000.0; - double cur_stime = (double)cur_rusage.ru_stime.tv_sec + - (double)cur_rusage.ru_stime.tv_usec / 1000000.0; - double stime_utime_ratio = - (cur_stime - start_stime) / (cur_utime - start_utime); - if (stime_utime_ratio > .1) - printf("%swarning, excessive system time ratio for %s (%.3f%%).\n", - err_prefix, algo, stime_utime_ratio * 100.0); - } + check_for_excessive_stime(desc, desc_extra); #endif #ifdef GENERATE_MACHINE_PARSEABLE_REPORT @@ -1895,21 +1864,7 @@ static void bench_stats_pq_asym_finish(const char* algo, int useDeviceID, int co total = current_time(0) - start; #ifdef LINUX_RUSAGE_UTIME - { - double start_utime = (double)base_rusage.ru_utime.tv_sec + - (double)base_rusage.ru_utime.tv_usec / 1000000.0; - double start_stime = (double)base_rusage.ru_stime.tv_sec + - (double)base_rusage.ru_stime.tv_usec / 1000000.0; - double cur_utime = (double)cur_rusage.ru_utime.tv_sec + - (double)cur_rusage.ru_utime.tv_usec / 1000000.0; - double cur_stime = (double)cur_rusage.ru_stime.tv_sec + - (double)cur_rusage.ru_stime.tv_usec / 1000000.0; - double stime_utime_ratio = - (cur_stime - start_stime) / (cur_utime - start_utime); - if (stime_utime_ratio > .1) - printf("%swarning, excessive system time ratio for %s (%.3f%%).\n", - err_prefix, algo, stime_utime_ratio * 100.0); - } + check_for_excessive_stime(algo, ""); #endif #ifdef GENERATE_MACHINE_PARSEABLE_REPORT @@ -8487,6 +8442,25 @@ void bench_sphincsKeySign(byte level, byte optim) (double)rusage.ru_utime.tv_usec / 1000000.0; } + static void check_for_excessive_stime(const char *desc, + const char *desc_extra) + { + double start_utime = (double)base_rusage.ru_utime.tv_sec + + (double)base_rusage.ru_utime.tv_usec / 1000000.0; + double start_stime = (double)base_rusage.ru_stime.tv_sec + + (double)base_rusage.ru_stime.tv_usec / 1000000.0; + double cur_utime = (double)cur_rusage.ru_utime.tv_sec + + (double)cur_rusage.ru_utime.tv_usec / 1000000.0; + double cur_stime = (double)cur_rusage.ru_stime.tv_sec + + (double)cur_rusage.ru_stime.tv_usec / 1000000.0; + double stime_utime_ratio = + (cur_stime - start_stime) / (cur_utime - start_utime); + if (stime_utime_ratio > .1) + printf("%swarning, " + "excessive system time ratio for %s%s (%.3f%%).\n", + err_prefix, desc, desc_extra, stime_utime_ratio * 100.0); + } + #else #include