[Qemu-devel] [PATCH v3 0/8] crypto: improve performance of XTS cipher mode

Daniel P. Berrangé posted 8 patches 5 years, 6 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20181019110856.18893-1-berrange@redhat.com
Test docker-clang@ubuntu passed
Test checkpatch passed
Test asan passed
Test docker-mingw@fedora failed
Test docker-quick@centos7 passed
crypto/xts.c                    | 200 +++++++++++++++-------------
tests/benchmark-crypto-cipher.c | 149 +++++++++++++++++----
tests/test-crypto-xts.c         | 226 +++++++++++++++++++++++---------
3 files changed, 402 insertions(+), 173 deletions(-)
[Qemu-devel] [PATCH v3 0/8] crypto: improve performance of XTS cipher mode
Posted by Daniel P. Berrangé 5 years, 6 months ago
  v1: https://lists.gnu.org/archive/html/qemu-devel/2018-10/msg01601.html
  v2: https://lists.gnu.org/archive/html/qemu-devel/2018-10/msg03159.html

The XTS cipher mode is significantly slower than CBC mode. This series
approximately doubles the XTS performance which will improve the I/O
rate for LUKS disks.

Changed in v3:

 - Swap order of byteswapping calls in xts_mult_x
 - Clarify arithmetic ops in xts_mult_x
 - Do in-place encryption in some xts_tweak_encdec calls

Changed in v2:

 - Use union for xts_uint128 to allow bytewise access without casts
 - Use byteswapping for endian correct bit gf128 shifting
 - Optimize for aligned buffers, with fallback for unaligned buffers
 - Add tests for unaligned buffer usage

Daniel P. Berrangé (8):
  crypto: expand algorithm coverage for cipher benchmark
  crypto: remove code duplication in tweak encrypt/decrypt
  crypto: introduce a xts_uint128 data type
  crypto: convert xts_tweak_encdec to use xts_uint128 type
  crypto: convert xts_mult_x to use xts_uint128 type
  crypto: annotate xts_tweak_encdec as inlineable
  crypto: refactor XTS cipher mode test suite
  crypto: add testing for unaligned buffers with XTS cipher mode

 crypto/xts.c                    | 200 +++++++++++++++-------------
 tests/benchmark-crypto-cipher.c | 149 +++++++++++++++++----
 tests/test-crypto-xts.c         | 226 +++++++++++++++++++++++---------
 3 files changed, 402 insertions(+), 173 deletions(-)

-- 
2.17.2