Public bug reported:

I'm running on machine with an Intel Core i7 CPU which has AES-NI
support: an insturction set for AES HW accelleration. Unfortunaately,
when booting from an encrypted drive in Ubuntu 12.04, I found that the
kernel's general purpose AES implementation was being used rather than
the significantly faster AES-NI based implementation (see speed
comparison below). Manually loading the aesni_intel.ko module after boot
has no effect as the drive binds to the AES implementation durring the
boot process. As a result, the initramfs must load the aesni_intel.ko
module if it is to be used.

/usr/share/initramfs-tools/hooks/cryptroot correctly detects if the CPU
supports AES-NI and correctly copies aesni_intel.ko to the initramfs
image. The issue seems to be that /usr/share/initramfs-tools/scripts
/local-top/cryptroot (which is transfered to the initramfs) fails to
actually load aesni_intel.ko. I've attached a patch that adds modprobes
for HW specific .kos to the script. If the initramfs does not contain
these modules, these extra modprobes should have no effect.

Testing encryption bandwidth on a encrypted RAM FS best illustrates the
performance differences in the different available AES implementations:

----------------------------------
aes (generic built-in version)

Write    Read     Options
271.62  218.80  -c aes-xts-plain -s 256
244.39  215.58  -c aes-cbc-essiv:sha256 -s 128
227.05  188.93  -c aes-xts-plain -s 384
234.86  186.86  -c aes-cbc-essiv:sha256 -s 192
232.20  166.78  -c aes-xts-plain -s 512
189.28  166.23  -c aes-cbc-essiv:sha256 -s 256

= current baseline performance

----------------------------------
aes_x86_64

Write    Read     Options
272.34  230.63  -c aes-xts-plain -s 256
270.18  228.06  -c aes-cbc-essiv:sha256 -s 128
237.04  198.83  -c aes-xts-plain -s 384
244.39  197.30  -c aes-cbc-essiv:sha256 -s 192
254.73  175.64  -c aes-xts-plain -s 512
218.80  174.45  -c aes-cbc-essiv:sha256 -s 256

= modest increase in performance for x86 64-bit CPUs that do not support
AES-NI

----------------------------------
aesni_intel

Write    Read      Options
527.84   522.45  -c aes-xts-plain -s 256
701.37  1044.90  -c aes-cbc-essiv:sha256 -s 128
605.92   517.17  -c aes-xts-plain -s 384
644.03  1013.86  -c aes-cbc-essiv:sha256 -s 192
613.17   476.28  -c aes-xts-plain -s 512
711.11   975.24  -c aes-cbc-essiv:sha256 -s 256

= significant increase in performance for CPUs that support AES-NI

** Affects: cryptsetup (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1058896

Title:
  initramfs cryptroot script does not load aesni_intel.ko before running
  cryptsetup

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/cryptsetup/+bug/1058896/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to