lkml.org 
[lkml]   [2012]   [May]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: [PATCH] crypto: serpent - add x86_64/avx assembler implementation
Quoting Johannes Goetzfried  
<Johannes.Goetzfried@informatik.stud.uni-erlangen.de>:

> This patch adds a x86_64/avx assembler implementation of the Serpent block
> cipher. The implementation is very similar to the sse2 implementation and
> processes eight blocks in parallel. Because of the new non-destructive three
> operand syntax all move-instructions can be removed and therefore a little
> performance increase is provided.

/* /me adds CPU with AVX to wishlist. */

<snip>

> diff --git a/arch/x86/crypto/serpent_avx_glue.c
> b/arch/x86/crypto/serpent_avx_glue.c
> new file mode 100644
> index 0000000..85ef6e7
> --- /dev/null
> +++ b/arch/x86/crypto/serpent_avx_glue.c
> @@ -0,0 +1,949 @@
> +/*
> + * Glue Code for AVX assembler versions of Serpent Cipher
> + *
> + * Copyright (C) 2012 Johannes Goetzfried
> + * <Johannes.Goetzfried@informatik.stud.uni-erlangen.de>
> + *
> + * Glue code based on twofish_avx_glue.c by:
Should be serpent_sse2_glue.c?

> + * Copyright (C) 2011 Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
> + *

<snip>

> +}, {
> + .cra_name = "ecb(serpent)",
> + .cra_driver_name = "ecb-serpent-avx",
> + .cra_priority = 400,

serpent_sse2_glue.c has priority 400 too, so you should increase
priority here to 500.

...

Actually about duplicating glue code.. is it really needed? On x86_64,
both avx and sse2 versions process 8-blocks parallel and therefore
glue code could be easily shared (as is done in SHA1 SSSE3/AVX).

-Jussi



\
 
 \ /
  Last update: 2012-05-28 09:21    [W:0.389 / U:0.296 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site