Skip to content

Commit 0530ee7

Browse files
authored
Merge pull request #6418 from douzzer/20230517-linuxkm-benchmarks
20230517-linuxkm-benchmarks
2 parents 90b8584 + fffff65 commit 0530ee7

15 files changed

Lines changed: 873 additions & 664 deletions

File tree

Makefile.am

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,7 @@ if BUILD_LINUXKM
218218
CFLAGS_FPU_DISABLE CFLAGS_FPU_ENABLE CFLAGS_SIMD_DISABLE CFLAGS_SIMD_ENABLE \
219219
CFLAGS_AUTO_VECTORIZE_DISABLE CFLAGS_AUTO_VECTORIZE_ENABLE \
220220
ASFLAGS_FPU_DISABLE_SIMD_ENABLE ASFLAGS_FPU_ENABLE_SIMD_DISABLE \
221-
ASFLAGS_FPUSIMD_DISABLE ASFLAGS_FPUSIMD_ENABLE
221+
ASFLAGS_FPUSIMD_DISABLE ASFLAGS_FPUSIMD_ENABLE ENABLED_LINUXKM_BENCHMARKS
222222

223223
module:
224224
+$(MAKE) -C linuxkm libwolfssl.ko

configure.ac

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -495,6 +495,16 @@ then
495495
fi
496496
AC_SUBST([ENABLED_LINUXKM_PIE])
497497

498+
AC_ARG_ENABLE([linuxkm-benchmarks],
499+
[AS_HELP_STRING([--enable-linuxkm-benchmarks],[Enable crypto benchmarking autorun at module load time for Linux kernel module (default: disabled)])],
500+
[ENABLED_LINUXKM_BENCHMARKS=$enableval],
501+
[ENABLED_LINUXKM_BENCHMARKS=no]
502+
)
503+
if test "$ENABLED_LINUXKM_BENCHMARKS" = "yes"
504+
then
505+
AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_LINUXKM_BENCHMARKS"
506+
fi
507+
AC_SUBST([ENABLED_LINUXKM_BENCHMARKS])
498508

499509
if test "$ENABLED_LINUXKM_DEFAULTS" = "yes"
500510
then
@@ -7369,6 +7379,11 @@ fi
73697379

73707380
if test "$ENABLED_ASYNCCRYPT" = "yes"
73717381
then
7382+
if ! test -f ${srcdir}/wolfcrypt/src/async.c || ! test -f ${srcdir}/wolfssl/wolfcrypt/async.h
7383+
then
7384+
AC_MSG_ERROR([--enable-asynccrypt requested, but WOLFSSL_ASYNC_CRYPT source files are missing.])
7385+
fi
7386+
73727387
AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_ASYNC_CRYPT -DHAVE_WOLF_EVENT -DHAVE_WOLF_BIGINT -DWOLFSSL_NO_HASH_RAW"
73737388

73747389
# If no async backend (hardware or software) has been explicitly enabled,
@@ -8810,9 +8825,9 @@ then
88108825
for header in $openssl_headers
88118826
do
88128827
AC_CHECK_HEADER([$header], [], [
8813-
AC_MSG_ERROR([Error including $header. Possible circular dependency introduced or missing include.])
8828+
AC_MSG_ERROR([Header file inconsistency detected -- error including ${header}.])
88148829
], [
8815-
#include <wolfssl/options.h>
8830+
#include <${OPTION_FILE}>
88168831
extern int dummy_int_to_make_compiler_happy;
88178832
])
88188833
done
@@ -8852,6 +8867,7 @@ echo " * FPU enable as flags: $ASFLAGS_FPU_ENABLE_SIMD_DISABLE" && \
88528867
echo " * SIMD+FPU disable as flags: $ASFLAGS_FPUSIMD_DISABLE" && \
88538868
echo " * SIMD+FPU enable as flags: $ASFLAGS_FPUSIMD_ENABLE" && \
88548869
echo " * Linux kernel module PIE: $ENABLED_LINUXKM_PIE"
8870+
echo " * Linux kernel module bench: $ENABLED_LINUXKM_BENCHMARKS"
88558871

88568872
echo " * Debug enabled: $ax_enable_debug"
88578873
echo " * Coverage enabled: $ax_enable_coverage"

linuxkm/Kbuild

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,11 @@ ifeq "$(ENABLED_LINUXKM_PIE)" "yes"
9090
$(obj)/linuxkm/module_hooks.o: ccflags-y += $(PIE_SUPPORT_FLAGS)
9191
endif
9292

93+
ifeq "$(ENABLED_LINUXKM_BENCHMARKS)" "yes"
94+
$(obj)/linuxkm/module_hooks.o: ccflags-y = $(WOLFSSL_CFLAGS) $(CFLAGS_FPU_ENABLE) $(CFLAGS_SIMD_ENABLE) $(PIE_SUPPORT_FLAGS)
95+
$(obj)/linuxkm/module_hooks.o: asflags-y = $(WOLFSSL_ASFLAGS) $(ASFLAGS_FPU_ENABLE_SIMD_DISABLE)
96+
endif
97+
9398
asflags-y := $(WOLFSSL_ASFLAGS) $(ASFLAGS_FPUSIMD_DISABLE)
9499

95100
# vectorized implementations that are kernel-safe are listed here.

0 commit comments

Comments
 (0)