All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/3] crypto: x86/twofish-3way - Cleanup and optimize asm
@ 2023-02-06  3:24 Peter Lafreniere
  2023-02-06  3:31 ` [PATCH 1/3] crypto: x86/twofish-3way - Remove unused encode parameter Peter Lafreniere
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Peter Lafreniere @ 2023-02-06  3:24 UTC (permalink / raw)
  To: linux-crypto; +Cc: Peter Lafreniere, x86, jussi.kivilinna

1/3 removes the unused xor argument to encode functions. This argument
is deadweight and its removal shaves off a both a few cycles per call as
well as a small amount of lines.

2/3 moves handling for cbc mode decryption to assembly in order to
remove overhead, yielding a ~6% speedup on AMD Zen1.

3/3 makes a minor readability change that doesn't fit well into 2/3.

Peter Lafreniere (3):
  crypto: x86/twofish-3way - Remove unused encode parameter
  crypto: x86/twofish-3way - Perform cbc xor in assembly
  crypto: x86/twofish-3way - Remove unused macro argument

 arch/x86/crypto/twofish-x86_64-asm_64-3way.S | 71 ++++++++++++--------
 arch/x86/crypto/twofish.h                    | 19 ++++--
 arch/x86/crypto/twofish_avx_glue.c           |  5 --
 arch/x86/crypto/twofish_glue_3way.c          | 22 +-----
 4 files changed, 59 insertions(+), 58 deletions(-)

-- 
2.39.1


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 1/3] crypto: x86/twofish-3way - Remove unused encode parameter
  2023-02-06  3:24 [PATCH 0/3] crypto: x86/twofish-3way - Cleanup and optimize asm Peter Lafreniere
@ 2023-02-06  3:31 ` Peter Lafreniere
  2023-02-06  3:31 ` [PATCH 2/3] crypto: x86/twofish-3way - Perform cbc xor in assembly Peter Lafreniere
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Peter Lafreniere @ 2023-02-06  3:31 UTC (permalink / raw)
  To: linux-crypto; +Cc: Peter Lafreniere, x86, jussi.kivilinna

__twofish_enc_blk_3way() takes a third parameter which is always
hardcoded to false. Remove it to simplify twofish_enc_blk_3way.

There are also callers in other x86 crypto modules. Modify those to
call the assembly function directly.

Signed-off-by: Peter Lafreniere <peter@n8pjl.ca>
---
 arch/x86/crypto/twofish-x86_64-asm_64-3way.S | 18 ++----------------
 arch/x86/crypto/twofish.h                    |  3 +--
 arch/x86/crypto/twofish_avx_glue.c           |  5 -----
 arch/x86/crypto/twofish_glue_3way.c          |  7 +------
 4 files changed, 4 insertions(+), 29 deletions(-)

diff --git a/arch/x86/crypto/twofish-x86_64-asm_64-3way.S b/arch/x86/crypto/twofish-x86_64-asm_64-3way.S
index d2288bf38a8a..fa11513dbbf1 100644
--- a/arch/x86/crypto/twofish-x86_64-asm_64-3way.S
+++ b/arch/x86/crypto/twofish-x86_64-asm_64-3way.S
@@ -220,18 +220,16 @@
 	rorq $32,			RAB2; \
 	outunpack3(mov, RIO, 2, RAB, 2);
 
-SYM_FUNC_START(__twofish_enc_blk_3way)
+SYM_FUNC_START(twofish_enc_blk_3way)
 	/* input:
 	 *	%rdi: ctx, CTX
 	 *	%rsi: dst
 	 *	%rdx: src, RIO
-	 *	%rcx: bool, if true: xor output
 	 */
 	pushq %r13;
 	pushq %r12;
 	pushq %rbx;
 
-	pushq %rcx; /* bool xor */
 	pushq %rsi; /* dst */
 
 	inpack_enc3();
@@ -248,10 +246,6 @@ SYM_FUNC_START(__twofish_enc_blk_3way)
 	pop_cd();
 
 	popq RIO; /* dst */
-	popq RT1; /* bool xor */
-
-	testb RT1bl, RT1bl;
-	jnz .L__enc_xor3;
 
 	outunpack_enc3(mov);
 
@@ -259,15 +253,7 @@ SYM_FUNC_START(__twofish_enc_blk_3way)
 	popq %r12;
 	popq %r13;
 	RET;
-
-.L__enc_xor3:
-	outunpack_enc3(xor);
-
-	popq %rbx;
-	popq %r12;
-	popq %r13;
-	RET;
-SYM_FUNC_END(__twofish_enc_blk_3way)
+SYM_FUNC_END(twofish_enc_blk_3way)
 
 SYM_FUNC_START(twofish_dec_blk_3way)
 	/* input:
diff --git a/arch/x86/crypto/twofish.h b/arch/x86/crypto/twofish.h
index 12df400e6d53..feb0a6f820a6 100644
--- a/arch/x86/crypto/twofish.h
+++ b/arch/x86/crypto/twofish.h
@@ -11,8 +11,7 @@ asmlinkage void twofish_enc_blk(const void *ctx, u8 *dst, const u8 *src);
 asmlinkage void twofish_dec_blk(const void *ctx, u8 *dst, const u8 *src);
 
 /* 3-way parallel cipher functions */
-asmlinkage void __twofish_enc_blk_3way(const void *ctx, u8 *dst, const u8 *src,
-				       bool xor);
+asmlinkage void twofish_enc_blk_3way(const void *ctx, u8 *dst, const u8 *src);
 asmlinkage void twofish_dec_blk_3way(const void *ctx, u8 *dst, const u8 *src);
 
 /* helpers from twofish_x86_64-3way module */
diff --git a/arch/x86/crypto/twofish_avx_glue.c b/arch/x86/crypto/twofish_avx_glue.c
index 3eb3440b477a..257a79f4cb58 100644
--- a/arch/x86/crypto/twofish_avx_glue.c
+++ b/arch/x86/crypto/twofish_avx_glue.c
@@ -33,11 +33,6 @@ static int twofish_setkey_skcipher(struct crypto_skcipher *tfm,
 	return twofish_setkey(&tfm->base, key, keylen);
 }
 
-static inline void twofish_enc_blk_3way(const void *ctx, u8 *dst, const u8 *src)
-{
-	__twofish_enc_blk_3way(ctx, dst, src, false);
-}
-
 static int ecb_encrypt(struct skcipher_request *req)
 {
 	ECB_WALK_START(req, TF_BLOCK_SIZE, TWOFISH_PARALLEL_BLOCKS);
diff --git a/arch/x86/crypto/twofish_glue_3way.c b/arch/x86/crypto/twofish_glue_3way.c
index 90454cf18e0d..c331c4ca9363 100644
--- a/arch/x86/crypto/twofish_glue_3way.c
+++ b/arch/x86/crypto/twofish_glue_3way.c
@@ -15,7 +15,7 @@
 #include "twofish.h"
 #include "ecb_cbc_helpers.h"
 
-EXPORT_SYMBOL_GPL(__twofish_enc_blk_3way);
+EXPORT_SYMBOL_GPL(twofish_enc_blk_3way);
 EXPORT_SYMBOL_GPL(twofish_dec_blk_3way);
 
 static int twofish_setkey_skcipher(struct crypto_skcipher *tfm,
@@ -24,11 +24,6 @@ static int twofish_setkey_skcipher(struct crypto_skcipher *tfm,
 	return twofish_setkey(&tfm->base, key, keylen);
 }
 
-static inline void twofish_enc_blk_3way(const void *ctx, u8 *dst, const u8 *src)
-{
-	__twofish_enc_blk_3way(ctx, dst, src, false);
-}
-
 void twofish_dec_blk_cbc_3way(const void *ctx, u8 *dst, const u8 *src)
 {
 	u8 buf[2][TF_BLOCK_SIZE];
-- 
2.39.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 2/3] crypto: x86/twofish-3way - Perform cbc xor in assembly
  2023-02-06  3:24 [PATCH 0/3] crypto: x86/twofish-3way - Cleanup and optimize asm Peter Lafreniere
  2023-02-06  3:31 ` [PATCH 1/3] crypto: x86/twofish-3way - Remove unused encode parameter Peter Lafreniere
@ 2023-02-06  3:31 ` Peter Lafreniere
  2023-02-06  3:31 ` [PATCH 3/3] crypto: x86/twofish-3way - Remove unused macro argument Peter Lafreniere
  2023-02-14  8:44 ` [PATCH 0/3] crypto: x86/twofish-3way - Cleanup and optimize asm Herbert Xu
  3 siblings, 0 replies; 5+ messages in thread
From: Peter Lafreniere @ 2023-02-06  3:31 UTC (permalink / raw)
  To: linux-crypto; +Cc: Peter Lafreniere, x86, jussi.kivilinna

Optimize twofish-3way cbc decryption by keeping intermediate results in
registers until computations are finished, rather than storing in
assembly, then immediately reloading them in glue code. Additionally,
keeping all operations in assembly can avoid a memcpy() call when the
decryption is being done in place.

cbc decoding speedups: (tcrypt mode=202 on a znver1)
64B: +7.7%, 128B: +6.3%, 256B: +6.8%

Signed-off-by: Peter Lafreniere <peter@n8pjl.ca>
---
 arch/x86/crypto/twofish-x86_64-asm_64-3way.S | 33 ++++++++++++++++++--
 arch/x86/crypto/twofish.h                    | 16 ++++++++--
 arch/x86/crypto/twofish_glue_3way.c          | 15 +--------
 3 files changed, 45 insertions(+), 19 deletions(-)

diff --git a/arch/x86/crypto/twofish-x86_64-asm_64-3way.S b/arch/x86/crypto/twofish-x86_64-asm_64-3way.S
index fa11513dbbf1..29e0fe664386 100644
--- a/arch/x86/crypto/twofish-x86_64-asm_64-3way.S
+++ b/arch/x86/crypto/twofish-x86_64-asm_64-3way.S
@@ -220,6 +220,20 @@
 	rorq $32,			RAB2; \
 	outunpack3(mov, RIO, 2, RAB, 2);
 
+#define outunpack_cbc_dec3() \
+	rorq $32,			RCD0; \
+	rorq $32,			RCD1; \
+	xorq (RT1),			RCD1; \
+	rorq $32,			RCD2; \
+	xorq 16(RT1),			RCD2; \
+	outunpack3(mov, RIO, 0, RCD, 0); \
+	rorq $32,			RAB0; \
+	rorq $32,			RAB1; \
+	xorq 8(RT1),			RAB1; \
+	rorq $32,			RAB2; \
+	xorq 24(RT1),			RAB2; \
+	outunpack3(mov, RIO, 2, RAB, 2);
+
 SYM_FUNC_START(twofish_enc_blk_3way)
 	/* input:
 	 *	%rdi: ctx, CTX
@@ -255,17 +269,20 @@ SYM_FUNC_START(twofish_enc_blk_3way)
 	RET;
 SYM_FUNC_END(twofish_enc_blk_3way)
 
-SYM_FUNC_START(twofish_dec_blk_3way)
+SYM_FUNC_START(__twofish_dec_blk_3way)
 	/* input:
 	 *	%rdi: ctx, CTX
 	 *	%rsi: dst
 	 *	%rdx: src, RIO
+	 *	%rcx: cbc (bool)
 	 */
 	pushq %r13;
 	pushq %r12;
 	pushq %rbx;
 
 	pushq %rsi; /* dst */
+	pushq %rdx; /* src */
+	pushq %rcx; /* cbc */
 
 	inpack_dec3();
 
@@ -280,12 +297,24 @@ SYM_FUNC_START(twofish_dec_blk_3way)
 	decrypt_cycle3(RAB, CD, 0);
 	pop_cd();
 
+	popq RT0; /* cbc */
+	popq RT1; /* src */
 	popq RIO; /* dst */
 
+	testq RT0, RT0;
+	jnz .L_dec_cbc;
+
 	outunpack_dec3();
 
 	popq %rbx;
 	popq %r12;
 	popq %r13;
 	RET;
-SYM_FUNC_END(twofish_dec_blk_3way)
+
+.L_dec_cbc:
+	outunpack_cbc_dec3();
+	popq %rbx;
+	popq %r12;
+	popq %r13;
+	RET;
+SYM_FUNC_END(__twofish_dec_blk_3way)
diff --git a/arch/x86/crypto/twofish.h b/arch/x86/crypto/twofish.h
index feb0a6f820a6..ede02a8b36d4 100644
--- a/arch/x86/crypto/twofish.h
+++ b/arch/x86/crypto/twofish.h
@@ -12,9 +12,19 @@ asmlinkage void twofish_dec_blk(const void *ctx, u8 *dst, const u8 *src);
 
 /* 3-way parallel cipher functions */
 asmlinkage void twofish_enc_blk_3way(const void *ctx, u8 *dst, const u8 *src);
-asmlinkage void twofish_dec_blk_3way(const void *ctx, u8 *dst, const u8 *src);
+asmlinkage void __twofish_dec_blk_3way(const void *ctx, u8 *dst,
+				       const u8 *src, bool cbc);
 
-/* helpers from twofish_x86_64-3way module */
-extern void twofish_dec_blk_cbc_3way(const void *ctx, u8 *dst, const u8 *src);
+/* helpers for use of __twofish_dec_blk_3way() */
+static inline void twofish_dec_blk_3way(const void *ctx, u8 *dst,
+					const u8 *src)
+{
+	return __twofish_dec_blk_3way(ctx, dst, src, false);
+}
+static inline void twofish_dec_blk_cbc_3way(const void *ctx, u8 *dst,
+					    const u8 *src)
+{
+	return __twofish_dec_blk_3way(ctx, dst, src, true);
+}
 
 #endif /* ASM_X86_TWOFISH_H */
diff --git a/arch/x86/crypto/twofish_glue_3way.c b/arch/x86/crypto/twofish_glue_3way.c
index c331c4ca9363..1f6944620dc5 100644
--- a/arch/x86/crypto/twofish_glue_3way.c
+++ b/arch/x86/crypto/twofish_glue_3way.c
@@ -16,7 +16,7 @@
 #include "ecb_cbc_helpers.h"
 
 EXPORT_SYMBOL_GPL(twofish_enc_blk_3way);
-EXPORT_SYMBOL_GPL(twofish_dec_blk_3way);
+EXPORT_SYMBOL_GPL(__twofish_dec_blk_3way);
 
 static int twofish_setkey_skcipher(struct crypto_skcipher *tfm,
 				   const u8 *key, unsigned int keylen)
@@ -24,19 +24,6 @@ static int twofish_setkey_skcipher(struct crypto_skcipher *tfm,
 	return twofish_setkey(&tfm->base, key, keylen);
 }
 
-void twofish_dec_blk_cbc_3way(const void *ctx, u8 *dst, const u8 *src)
-{
-	u8 buf[2][TF_BLOCK_SIZE];
-	const u8 *s = src;
-
-	if (dst == src)
-		s = memcpy(buf, src, sizeof(buf));
-	twofish_dec_blk_3way(ctx, dst, src);
-	crypto_xor(dst + TF_BLOCK_SIZE, s, sizeof(buf));
-
-}
-EXPORT_SYMBOL_GPL(twofish_dec_blk_cbc_3way);
-
 static int ecb_encrypt(struct skcipher_request *req)
 {
 	ECB_WALK_START(req, TF_BLOCK_SIZE, -1);
-- 
2.39.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 3/3] crypto: x86/twofish-3way - Remove unused macro argument
  2023-02-06  3:24 [PATCH 0/3] crypto: x86/twofish-3way - Cleanup and optimize asm Peter Lafreniere
  2023-02-06  3:31 ` [PATCH 1/3] crypto: x86/twofish-3way - Remove unused encode parameter Peter Lafreniere
  2023-02-06  3:31 ` [PATCH 2/3] crypto: x86/twofish-3way - Perform cbc xor in assembly Peter Lafreniere
@ 2023-02-06  3:31 ` Peter Lafreniere
  2023-02-14  8:44 ` [PATCH 0/3] crypto: x86/twofish-3way - Cleanup and optimize asm Herbert Xu
  3 siblings, 0 replies; 5+ messages in thread
From: Peter Lafreniere @ 2023-02-06  3:31 UTC (permalink / raw)
  To: linux-crypto; +Cc: Peter Lafreniere, x86, jussi.kivilinna

The outunpack3() macro has an op parameter that is only ever called with
"mov". Removing that argument altogether leads to gains to code
readability. There is no effect on the resulting binary.

Signed-off-by: Peter Lafreniere <peter@n8pjl.ca>
---
 arch/x86/crypto/twofish-x86_64-asm_64-3way.S | 24 ++++++++++----------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/arch/x86/crypto/twofish-x86_64-asm_64-3way.S b/arch/x86/crypto/twofish-x86_64-asm_64-3way.S
index 29e0fe664386..c2cd9b5406da 100644
--- a/arch/x86/crypto/twofish-x86_64-asm_64-3way.S
+++ b/arch/x86/crypto/twofish-x86_64-asm_64-3way.S
@@ -182,23 +182,23 @@
 	movq 4*(8+(n))(in),		xy ## 2; \
 	xorq w+4*m(CTX),		xy ## 2;
 
-#define outunpack3(op, out, n, xy, m) \
+#define outunpack3(out, n, xy, m) \
 	xorq w+4*m(CTX),		xy ## 0; \
-	op ## q xy ## 0,		4*(n)(out); \
+	movq xy ## 0,			4*(n)(out); \
 	\
 	xorq w+4*m(CTX),		xy ## 1; \
-	op ## q xy ## 1,		4*(4+(n))(out); \
+	movq xy ## 1,			4*(4+(n))(out); \
 	\
 	xorq w+4*m(CTX),		xy ## 2; \
-	op ## q xy ## 2,		4*(8+(n))(out);
+	movq xy ## 2,			4*(8+(n))(out);
 
 #define inpack_enc3() \
 	inpack3(RIO, 0, RAB, 0); \
 	inpack3(RIO, 2, RCD, 2);
 
-#define outunpack_enc3(op) \
-	outunpack3(op, RIO, 2, RAB, 6); \
-	outunpack3(op, RIO, 0, RCD, 4);
+#define outunpack_enc3() \
+	outunpack3(RIO, 2, RAB, 6); \
+	outunpack3(RIO, 0, RCD, 4);
 
 #define inpack_dec3() \
 	inpack3(RIO, 0, RAB, 4); \
@@ -214,11 +214,11 @@
 	rorq $32,			RCD0; \
 	rorq $32,			RCD1; \
 	rorq $32,			RCD2; \
-	outunpack3(mov, RIO, 0, RCD, 0); \
+	outunpack3(RIO, 0, RCD, 0); \
 	rorq $32,			RAB0; \
 	rorq $32,			RAB1; \
 	rorq $32,			RAB2; \
-	outunpack3(mov, RIO, 2, RAB, 2);
+	outunpack3(RIO, 2, RAB, 2);
 
 #define outunpack_cbc_dec3() \
 	rorq $32,			RCD0; \
@@ -226,13 +226,13 @@
 	xorq (RT1),			RCD1; \
 	rorq $32,			RCD2; \
 	xorq 16(RT1),			RCD2; \
-	outunpack3(mov, RIO, 0, RCD, 0); \
+	outunpack3(RIO, 0, RCD, 0); \
 	rorq $32,			RAB0; \
 	rorq $32,			RAB1; \
 	xorq 8(RT1),			RAB1; \
 	rorq $32,			RAB2; \
 	xorq 24(RT1),			RAB2; \
-	outunpack3(mov, RIO, 2, RAB, 2);
+	outunpack3(RIO, 2, RAB, 2);
 
 SYM_FUNC_START(twofish_enc_blk_3way)
 	/* input:
@@ -261,7 +261,7 @@ SYM_FUNC_START(twofish_enc_blk_3way)
 
 	popq RIO; /* dst */
 
-	outunpack_enc3(mov);
+	outunpack_enc3();
 
 	popq %rbx;
 	popq %r12;
-- 
2.39.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH 0/3] crypto: x86/twofish-3way - Cleanup and optimize asm
  2023-02-06  3:24 [PATCH 0/3] crypto: x86/twofish-3way - Cleanup and optimize asm Peter Lafreniere
                   ` (2 preceding siblings ...)
  2023-02-06  3:31 ` [PATCH 3/3] crypto: x86/twofish-3way - Remove unused macro argument Peter Lafreniere
@ 2023-02-14  8:44 ` Herbert Xu
  3 siblings, 0 replies; 5+ messages in thread
From: Herbert Xu @ 2023-02-14  8:44 UTC (permalink / raw)
  To: Peter Lafreniere; +Cc: linux-crypto, peter, x86, jussi.kivilinna

Peter Lafreniere <peter@n8pjl.ca> wrote:
> 1/3 removes the unused xor argument to encode functions. This argument
> is deadweight and its removal shaves off a both a few cycles per call as
> well as a small amount of lines.
> 
> 2/3 moves handling for cbc mode decryption to assembly in order to
> remove overhead, yielding a ~6% speedup on AMD Zen1.
> 
> 3/3 makes a minor readability change that doesn't fit well into 2/3.
> 
> Peter Lafreniere (3):
>  crypto: x86/twofish-3way - Remove unused encode parameter
>  crypto: x86/twofish-3way - Perform cbc xor in assembly
>  crypto: x86/twofish-3way - Remove unused macro argument
> 
> arch/x86/crypto/twofish-x86_64-asm_64-3way.S | 71 ++++++++++++--------
> arch/x86/crypto/twofish.h                    | 19 ++++--
> arch/x86/crypto/twofish_avx_glue.c           |  5 --
> arch/x86/crypto/twofish_glue_3way.c          | 22 +-----
> 4 files changed, 59 insertions(+), 58 deletions(-)

This fails the self-test on my machine:

[   91.709458] alg: skcipher: ecb-twofish-3way decryption test failed (wrong result) on test vector 3, cfg="in-place (one sglist)"
[   91.710358] alg: self-tests for ecb(twofish) using ecb-twofish-3way failed (rc=-22)
[   91.710370] ------------[ cut here ]------------
[   91.711228] alg: self-tests for ecb(twofish) using ecb-twofish-3way failed (rc=-22)
[   91.711288] WARNING: CPU: 1 PID: 3245 at crypto/testmgr.c:5858 alg_test.part.0.cold+0xea/0x128 [cryptomgr]
[   91.712672] Modules linked in: twofish_x86_64_3way(+) sm3_generic rmd160 ip_vti ip_tunnel af_key ah6 ah4 esp6 esp4 xfrm4_tunnel tunnel4 ipcomp ipcomp6 xfrm6_tunnel xfrm_ipcomp tunnel6 cfb sm4_generic sm4_aesni_avx_x86_64 sm4 sm3 poly1305_generic poly1305_x86_64 nhpoly1305_sse2 nhpoly1305 libpoly1305 des3_ede_x86_64 curve25519_x86_64 libcurve25519_generic chacha_generic chacha_x86_64 libchacha aria_aesni_avx_x86_64 aria_generic aegis128 aegis128_aesni chacha20poly1305 cmac camellia_aesni_avx_x86_64 camellia_generic camellia_x86_64 lzo lzo_compress lzo_decompress cast6_avx_x86_64 cast6_generic cast5_avx_x86_64 cast5_generic cast_common deflate ccm serpent_avx_x86_64 serpent_sse2_x86_64 serpent_generic blowfish_generic blowfish_x86_64 blowfish_common twofish_generic twofish_x86_64 twofish_common xcbc md5 des_generic libdes xt_CHECKSUM nft_chain_nat xt_MASQUERADE nf_nat nf_conntrack xfrm_user xfrm_algo nf_defrag_ipv6 nf_defrag_ipv4 xt_tcpudp nft_compat bridge stp llc nf_tables libcrc32c
[   91.712714]  nfnetlink af_packet intel_rapl_msr intel_rapl_common iosf_mbi kvm_intel kvm irqbypass crc32_generic crc32_pclmul polyval_clmulni polyval_generic ghash_clmulni_intel sha512_ssse3 sha512_generic xctr ghash_generic gf128mul gcm crypto_null xts sd_mod t10_pi ctr crc64_rocksoft_generic crc64_rocksoft crc_t10dif cts crct10dif_generic crct10dif_pclmul crc64 cbc sr_mod crct10dif_common cdrom sg joydev mousedev ppdev aes_generic ecb aesni_intel snd_pcm bochs drm_vram_helper drm_ttm_helper snd_timer virtio_net libaes ttm snd libcryptoutils drm_kms_helper evdev input_leds ata_generic pata_acpi crypto_simd cryptd rapl net_failover failover psmouse drm soundcore led_class ata_piix drm_panel_orientation_quirks cfbfillrect cfbimgblt cfbcopyarea syscopyarea sysfillrect sysimgblt libata pcspkr serio_raw fb fbdev backlight floppy intel_agp rtc_cmos i2c_piix4 intel_gtt scsi_mod parport_pc agpgart i2c_core scsi_common parport tiny_power_button button qemu_fw_cfg ip_tables x_tables sha256_ssse3
[   91.719801]  sha256_generic libsha256 sha1_ssse3 sha1_generic hmac ipv6 autofs4 ext4 crc16 mbcache jbd2 dm_snapshot dm_bufio dm_mod virtio_pci virtio_pci_legacy_dev virtio_pci_modern_dev virtio_blk virtio_ring virtio unix crc32c_generic crc32c_intel cryptomgr kpp crypto_acompress akcipher rng aead crypto_hash skcipher crypto_algapi crypto [last unloaded: twofish_x86_64_3way]
[   91.729585] CPU: 1 PID: 3245 Comm: cryptomgr_test Not tainted 6.2.0-rc1+ #4
[   91.730089] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.14.0-2 04/01/2014
[   91.730727] RIP: 0010:alg_test.part.0.cold+0xea/0x128 [cryptomgr]
[   91.731154] Code: dd ea 46 e1 44 8b 85 54 ff ff ff 41 83 f8 fe 0f 84 61 9f ff ff 44 89 c1 4c 89 ea 4c 89 fe 48 c7 c7 30 82 2a a0 e8 b6 cd 46 e1 <0f> 0b 44 8b 85 54 ff ff ff e9 3e 9f ff ff 0f 0b 48 c7 c7 08 81 2a
[   91.732625] RSP: 0018:ffffc900001e3e18 EFLAGS: 00010296
[   91.732989] RAX: 0000000000000047 RBX: 0000000000000079 RCX: ffff88801ed1c4c8
[   91.733494] RDX: 00000000ffffffd8 RSI: 0000000000000027 RDI: ffff88801ed1c4c0
[   91.733996] RBP: ffffc900001e3ed8 R08: ffffffff81ea3dc8 R09: 0000000000000003
[   91.734516] R10: 00000000000001d3 R11: ffffffff81e8e9a8 R12: 000000000000007b
[   91.735028] R13: ffff888003334200 R14: 000000000000007b R15: ffff888003334280
[   91.735532] FS:  0000000000000000(0000) GS:ffff88801ed00000(0000) knlGS:0000000000000000
[   91.736113] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[   91.736536] CR2: 00007f253884c060 CR3: 000000000393f003 CR4: 0000000000060ee0
[   91.737068] Call Trace:
[   91.737191]  <TASK>
[   91.737288]  ? __schedule+0x274/0xf90
[   91.737529]  ? _raw_spin_unlock_irqrestore+0xd/0x40
[   91.737860]  ? try_to_wake_up+0x18f/0x2d0
[   91.738126]  ? __pfx_cryptomgr_test+0x10/0x10 [cryptomgr]
[   91.738510]  alg_test+0x18/0x50 [cryptomgr]
[   91.739551]  cryptomgr_test+0x24/0x50 [cryptomgr]
[   91.740362]  kthread+0xe9/0x110
[   91.741011]  ? __pfx_kthread+0x10/0x10
[   91.741650]  ret_from_fork+0x2c/0x50
[   91.742272]  </TASK>
[   91.742799] ---[ end trace 0000000000000000 ]---

Cheers,
-- 
Email: Herbert Xu <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2023-02-14  8:44 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-02-06  3:24 [PATCH 0/3] crypto: x86/twofish-3way - Cleanup and optimize asm Peter Lafreniere
2023-02-06  3:31 ` [PATCH 1/3] crypto: x86/twofish-3way - Remove unused encode parameter Peter Lafreniere
2023-02-06  3:31 ` [PATCH 2/3] crypto: x86/twofish-3way - Perform cbc xor in assembly Peter Lafreniere
2023-02-06  3:31 ` [PATCH 3/3] crypto: x86/twofish-3way - Remove unused macro argument Peter Lafreniere
2023-02-14  8:44 ` [PATCH 0/3] crypto: x86/twofish-3way - Cleanup and optimize asm Herbert Xu

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.