We can acheive a reduction in code size by cleaning up unused logic in
assembly functions, and by replacing handwritten ECB/CBC routines with
helper macros from 'ecb_cbc_helpers.h'.
Additionally, these changes can allow future x86_64 optimized
implementations to take advantage of blowfish-x86_64's fast 1-way and
4-way functions with less code churn.
When testing the patch, I saw a few percent lower cycle counts per
iteration on Intel Skylake for both encryption and decryption. This
is merely a single observation and this series has not been rigorously
benchmarked, as performance changes are not expected.
v1 -> v2:
- Fixed typo that caused an assembler failure
- Added note about performance to cover letter
Peter Lafreniere (3):
crypto: x86/blowfish - Remove unused encode parameter
crypto: x86/blowfish - Convert to use ECB/CBC helpers
crypto: x86/blowfish - Eliminate use of SYM_TYPED_FUNC_START in asm
arch/x86/crypto/blowfish-x86_64-asm_64.S | 71 ++++----
arch/x86/crypto/blowfish_glue.c | 200 +++--------------------
2 files changed, 55 insertions(+), 216 deletions(-)
--
2.39.1
On Tue, 31 Jan 2023 at 02:26, Peter Lafreniere <[email protected]> wrote:
>
> We can acheive a reduction in code size by cleaning up unused logic in
> assembly functions, and by replacing handwritten ECB/CBC routines with
> helper macros from 'ecb_cbc_helpers.h'.
>
> Additionally, these changes can allow future x86_64 optimized
> implementations to take advantage of blowfish-x86_64's fast 1-way and
> 4-way functions with less code churn.
>
'future x86_64 optimized implementations' of blowfish? That is a joke, right?
> When testing the patch, I saw a few percent lower cycle counts per
> iteration on Intel Skylake for both encryption and decryption. This
> is merely a single observation and this series has not been rigorously
> benchmarked, as performance changes are not expected.
>
> v1 -> v2:
> - Fixed typo that caused an assembler failure
> - Added note about performance to cover letter
>
> Peter Lafreniere (3):
> crypto: x86/blowfish - Remove unused encode parameter
> crypto: x86/blowfish - Convert to use ECB/CBC helpers
> crypto: x86/blowfish - Eliminate use of SYM_TYPED_FUNC_START in asm
>
Tested-by: Ard Biesheuvel <[email protected]>
Acked-by: Ard Biesheuvel <[email protected]>
> arch/x86/crypto/blowfish-x86_64-asm_64.S | 71 ++++----
> arch/x86/crypto/blowfish_glue.c | 200 +++--------------------
> 2 files changed, 55 insertions(+), 216 deletions(-)
>
> --
> 2.39.1
>
Peter Lafreniere <[email protected]> wrote:
> We can acheive a reduction in code size by cleaning up unused logic in
> assembly functions, and by replacing handwritten ECB/CBC routines with
> helper macros from 'ecb_cbc_helpers.h'.
>
> Additionally, these changes can allow future x86_64 optimized
> implementations to take advantage of blowfish-x86_64's fast 1-way and
> 4-way functions with less code churn.
>
> When testing the patch, I saw a few percent lower cycle counts per
> iteration on Intel Skylake for both encryption and decryption. This
> is merely a single observation and this series has not been rigorously
> benchmarked, as performance changes are not expected.
>
> v1 -> v2:
> - Fixed typo that caused an assembler failure
> - Added note about performance to cover letter
>
> Peter Lafreniere (3):
> crypto: x86/blowfish - Remove unused encode parameter
> crypto: x86/blowfish - Convert to use ECB/CBC helpers
> crypto: x86/blowfish - Eliminate use of SYM_TYPED_FUNC_START in asm
>
> arch/x86/crypto/blowfish-x86_64-asm_64.S | 71 ++++----
> arch/x86/crypto/blowfish_glue.c | 200 +++--------------------
> 2 files changed, 55 insertions(+), 216 deletions(-)
All applied. Thanks.
--
Email: Herbert Xu <[email protected]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt