From: Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
To: linux-crypto@vger.kernel.org
Cc: Herbert Xu <herbert@gondor.apana.org.au>,
"David S. Miller" <davem@davemloft.net>
Subject: [PATCH 00/11] crypto: x86 - split common glue code into helper modules
Date: Mon, 18 Jun 2012 14:06:53 +0300 [thread overview]
Message-ID: <20120618110652.28985.70075.stgit@localhost6.localdomain6> (raw)
Currently several block-ciphers in arch/x86/crypto duplicate glue code for using
assembler implementations that process multiple blocks parallel. This patchset
adds shared glue_helper module for these 128bit cipher modules to use.
Downside of generalisation of glue code is slightly increased overhead. Tcrypt
test results of camellia-x86_64, twofish-x86_64-3way and serpent-sse2 (new/old
ratio, average of ecb, cbc, ctr):
camellia twofish serpent
16 bytes: 0.926x 0.945x 0.980x
64 bytes: 0.977x 0.968x 0.982x
256 bytes: 0.980x 0.984x 0.982x
1024 bytes: 0.987x 0.992x 0.985x
4096 bytes: 0.988x 0.993x 0.985x
For ciphers utilising SSE/AVX instructions, shared ablk_helper module is added
for registering async-ciphers.
---
Jussi Kivilinna (11):
crypto: ablk_helper - move ablk_* functions from serpent-sse2/avx glue code to shared module
crypto: twofish-avx - change to use shared ablk_* functions
crypto: aes_ni - change to use shared ablk_* functions
crypto: serpent-sse2 - prepare serpent-sse2 glue code into generic x86 glue code for 128bit block ciphers
crypto: serpent-sse2 - split generic glue code to new helper module
crypto: serpent-avx: remove duplicated glue code and use shared glue code from glue_helper
crypto: camellia-x86_64 - remove duplicated glue code and use shared glue code from glue_helper
crypto: twofish-x86_64-3way - remove duplicated glue code and use shared glue code from glue_helper
crypto: twofish-avx - remove duplicated glue code and use shared glue code from glue_helper
crypto: move arch/x86/include/asm/serpent-{sse2|avx}.h to arch/x86/include/asm/crypto/
crypto: move arch/x86/include/asm/aes.h to arch/x86/include/asm/crypto/
arch/x86/crypto/Makefile | 3
arch/x86/crypto/ablk_helper.c | 149 ++++++
arch/x86/crypto/aes_glue.c | 2
arch/x86/crypto/aesni-intel_glue.c | 102 ----
arch/x86/crypto/camellia_glue.c | 355 ++++-----------
arch/x86/crypto/glue_helper.c | 307 +++++++++++++
arch/x86/crypto/serpent_avx_glue.c | 513 ++++-----------------
arch/x86/crypto/serpent_sse2_glue.c | 513 ++++-----------------
arch/x86/crypto/twofish_avx_glue.c | 672 ++++------------------------
arch/x86/crypto/twofish_glue_3way.c | 407 ++++-------------
arch/x86/include/asm/aes.h | 11
arch/x86/include/asm/crypto/ablk_helper.h | 31 +
arch/x86/include/asm/crypto/aes.h | 11
arch/x86/include/asm/crypto/glue_helper.h | 115 +++++
arch/x86/include/asm/crypto/serpent-avx.h | 32 +
arch/x86/include/asm/crypto/serpent-sse2.h | 63 +++
arch/x86/include/asm/crypto/twofish.h | 46 ++
arch/x86/include/asm/serpent-avx.h | 32 -
arch/x86/include/asm/serpent-sse2.h | 63 ---
crypto/Kconfig | 21 +
20 files changed, 1286 insertions(+), 2162 deletions(-)
create mode 100644 arch/x86/crypto/ablk_helper.c
create mode 100644 arch/x86/crypto/glue_helper.c
delete mode 100644 arch/x86/include/asm/aes.h
create mode 100644 arch/x86/include/asm/crypto/ablk_helper.h
create mode 100644 arch/x86/include/asm/crypto/aes.h
create mode 100644 arch/x86/include/asm/crypto/glue_helper.h
create mode 100644 arch/x86/include/asm/crypto/serpent-avx.h
create mode 100644 arch/x86/include/asm/crypto/serpent-sse2.h
create mode 100644 arch/x86/include/asm/crypto/twofish.h
delete mode 100644 arch/x86/include/asm/serpent-avx.h
delete mode 100644 arch/x86/include/asm/serpent-sse2.h
next reply other threads:[~2012-06-18 11:06 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-18 11:06 Jussi Kivilinna [this message]
2012-06-18 11:06 ` [PATCH 01/11] crypto: ablk_helper - move ablk_* functions from serpent-sse2/avx glue code to shared module Jussi Kivilinna
2012-06-18 11:07 ` [PATCH 02/11] crypto: twofish-avx - change to use shared ablk_* functions Jussi Kivilinna
2012-06-18 11:07 ` [PATCH 03/11] crypto: aes_ni " Jussi Kivilinna
2012-06-18 11:07 ` [PATCH 04/11] crypto: serpent-sse2 - prepare serpent-sse2 glue code into generic x86 glue code for 128bit block ciphers Jussi Kivilinna
2012-06-18 11:07 ` [PATCH 05/11] crypto: serpent-sse2 - split generic glue code to new helper module Jussi Kivilinna
2012-06-18 11:07 ` [PATCH 06/11] crypto: serpent-avx: remove duplicated glue code and use shared glue code from glue_helper Jussi Kivilinna
2012-06-18 11:07 ` [PATCH 07/11] crypto: camellia-x86_64 - " Jussi Kivilinna
2012-06-18 11:07 ` [PATCH 08/11] crypto: twofish-x86_64-3way " Jussi Kivilinna
2012-06-18 11:07 ` [PATCH 09/11] crypto: twofish-avx " Jussi Kivilinna
2012-06-18 11:07 ` [PATCH 10/11] crypto: move arch/x86/include/asm/serpent-{sse2|avx}.h to arch/x86/include/asm/crypto/ Jussi Kivilinna
2012-06-18 11:07 ` [PATCH 11/11] crypto: move arch/x86/include/asm/aes.h " Jussi Kivilinna
2012-06-27 6:49 ` [PATCH 00/11] crypto: x86 - split common glue code into helper modules Herbert Xu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20120618110652.28985.70075.stgit@localhost6.localdomain6 \
--to=jussi.kivilinna@mbnet.fi \
--cc=davem@davemloft.net \
--cc=herbert@gondor.apana.org.au \
--cc=linux-crypto@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox