From: Eric Biggers <ebiggers@kernel.org>
To: Maxim Fomin <maxim@fomin.one>
Cc: cryptsetup@lists.linux.dev
Subject: Re: Cryptsetup and hardware accelerated AES-XTS
Date: Mon, 22 Jul 2024 08:32:17 -0700 [thread overview]
Message-ID: <20240722153217.GA1215@sol.localdomain> (raw)
In-Reply-To: <NgRPAWKstiL9VmiQ1m8_A-O7V4Znvo6vGMiYoOGFkjRZAFbLPDyM2tamk1XoMZidvlX5cfPZ34iL7adYTFumFFDS7tJkCacSD4pul7AYMzE=@fomin.one>
On Mon, Jul 22, 2024 at 10:36:59AM +0000, Maxim Fomin wrote:
>
> On Sunday, July 21st, 2024 at 4:58 PM, Eric Biggers <ebiggers@kernel.org> wrote:
>
> >
> >
> > On Sun, Jul 21, 2024 at 09:14:02AM +0000, Maxim Fomin wrote:
> >
> > > On Saturday, July 20th, 2024 at 6:36 PM, Eric Biggers ebiggers@kernel.org wrote:
> > >
> > > > On Sat, Jul 20, 2024 at 12:15:23PM +0000, Maxim Fomin wrote:
> > > >
> > > > > Hi!
> > > > >
> > > > > Recently linux kernel got[1] faster AES-XTS on modern x86_64 CPUs thanks to VAES and AVX-10/512. I decided to dig deeper into this issue and found the article[2] from 2020 stating that dm-crypt can be configured to use faster (synchronous and hardware accelerated) algorithms with 'capi:' prefix. Can cryptsetup be configured to ask dm-crypt to use hardware accelerated algorithms?
> > > > >
> > > > > [1] https://lore.kernel.org/lkml/20240403004404.GC2576@sol.localdomain/T/#m83293b2699f9a5da04fc5780ee402191dace3926
> > > > >
> > > > > [2] https://blog.cloudflare.com/speeding-up-linux-disk-encryption/
> > > > >
> > > > > Best regards,
> > > > > Maxim
> > > >
> > > > You don't need to use "capi:". Just make sure CONFIG_CRYPTO_AES_NI_INTEL=y is
> > > > enabled in your kernel (which it already should have been since it was needed
> > > > for AES-NI acceleration before), and the new code will be used automatically if
> > > > your CPU supports it.
> > > >
> > > > - Eric
> > >
> > > I have heard that on some Intel CPUs AVX-512 is ignored (although it is
> > > supported) because of downclocking. I have rocketlake i5-11600K. How I can
> > > check which algorithm is actually used? How I can force cryptsetup/dm-crypt to
> > > enable AVX-512 version if it is not used?
> >
> >
> > The way to tell which AES-XTS implementation is used by default on a particular
> > system is to check /proc/crypto for which "xts(aes)" has the highest priority.
>
> Does the priority property takes into account deprioritization of Ice Lake and
> Tiger Lake?
Yes.
> Btw, actual function can be noticed in 'perf' command output, which in my case
> confirms that indeed vaes-avx10-512 version is used.
>
> > There is a way to change algorithm priorities to override the default, but there
> > isn't much reason to think that people would be able to make a better choice
> > than the kernel's default.
>
> Default choice may be problematic because it is applied in every case and does
> not take into account option to disable downclocking and thermal limit on
> actual machine. Some BIOS versions allow to disable downclocking (called
> AVX512 ratio offset or similar).
Sure, but people who disable downclocking may not have fully tested their system
for stability when executing workloads that use 512-bit vectors extensively.
There's a very real risk of the system crashing during such workloads if the CPU
is using unsupported operating parameters.
> If this option is available and thermal limit is not applicable, then default
> kernel policy means some potential CPU frequency is lost.
Note that in AES-XTS microbenchmarks on Ice Lake, there's a ~127% improvement
from moving from the old implementation to xts-aes-vaes-avx10_256, but only a
~11% further improvement from moving to xts-aes-vaes-avx10_512. I.e., 512-bit
vectors provide little benefit on that CPU in the first place for AES-XTS... So
why take on the risks of using them?
- Eric
next prev parent reply other threads:[~2024-07-22 15:32 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-20 12:15 Cryptsetup and hardware accelerated AES-XTS Maxim Fomin
2024-07-20 17:36 ` Eric Biggers
2024-07-21 9:14 ` Maxim Fomin
2024-07-21 15:58 ` Eric Biggers
2024-07-22 10:36 ` Maxim Fomin
2024-07-22 15:32 ` Eric Biggers [this message]
2024-07-22 8:25 ` Milan Broz
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=20240722153217.GA1215@sol.localdomain \
--to=ebiggers@kernel.org \
--cc=cryptsetup@lists.linux.dev \
--cc=maxim@fomin.one \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.