On Wed, Jul 22, 2026 at 12:57:00PM +0100, Daniel P. Berrangé wrote: > Linux 7.1 has deprecated the AF_ALG crypto backend:
^^^^ should say 7.2 and likewise later in the patch > > > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a67afb1884ba815079bd43d5c998e155e03b08b6 > > And has documented it to be always slower than userspace crypto: > > > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5624ea54f3ba5c83d2e5503411a31a8be0278c1e > > as a result of dropping support for zero-copy and hardware > accelerators: > > > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7524070f26d8d347c26787dc297fb844baa26abf > > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ffdd2bc378953b525aca61902534e753f1f8e734 > > The main use case for the AF_ALG impl was to improve the performance > of virtio-crypto with the cryptodev-backend-builtin driver. In > practice this did not matter since 'cryptodev-backend-lkcf' can do > offload to the kernel via the keyctl syscall, and 'cryptodev-vhost-user' > can offload to an external process which can optionally integrate with > hardware accelerators without kernel assistance. > > The AF_ALG backend has no user visible configuration options at runtime, > it is unconditionally tried with any use of the cipher APIs. So it does > not strictly have to go through the deprecation process, however, it is > left available initially in case there was an unexpected use case that > relies on it which may be faster with old kernels before the above Linux > commits. > > Suggested-by: Thomas Huth <[email protected]> > Signed-off-by: Daniel P. Berrangé <[email protected]> > --- > docs/about/deprecated.rst | 21 +++++++++++++++++++++ > meson.build | 6 ++++++ > 2 files changed, 27 insertions(+) > > diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst > index 0c656a968f..54b2662752 100644 > --- a/docs/about/deprecated.rst > +++ b/docs/about/deprecated.rst > @@ -416,6 +416,27 @@ ABI is long-obsolete. We are therefore deprecating both > OABI support > and NWFPE emulation, and they will be removed in a future QEMU > release. > > +Build features > +-------------- > + > +Crypto AF_ALG backend > +--------------------- > + > +The use of the AF_ALG backend for cryptography has been deprecated > +with no replacement. > + > +The AF_ALG interface is deprecated by Linux 7.1 and all support > +for hardware accelerators has been removed. It will thus always be > +slower than userspace crypto due to the overhead of copying data > +to kernel space. The GNUTLS, Nettle and GCrypt libraries supported > +by QEMU all include a variety of hardware optimized crypto > +implementations which should suffice for typical needs. > + > +For the virtio-crypto device, the 'cryptodev-backend-lkcf' backend > +can offload some operations to the kernel via the keyctl syscall, > +and the 'cryptodev-vhost-user' backend can offload the device > +backend to an external process which can integrate with crypto > +accelerators. > > Backwards compatibility > ----------------------- > diff --git a/meson.build b/meson.build > index 164328ded8..02cbe6445a 100644 > --- a/meson.build > +++ b/meson.build > @@ -5053,3 +5053,9 @@ if not actually_reloc and (host_os == 'windows' or > get_option('relocatable')) > message('QEMU will have to be installed under ' + get_option('prefix') + > '.') > message('Use --disable-relocatable to remove this warning.') > endif > + > +if get_option('crypto_afalg').enabled() > + warning('Use of the AF_ALG crypto backend is deprecated, ' + > + 'since Linux 7.1 has deprecated the AF_ALG interface ' + > + 'and removed its ability to use hardware accelerators.') > +endif > -- > 2.55.0 > With regards, Daniel -- |: https://berrange.com ~~ https://hachyderm.io/@berrange :| |: https://libvirt.org ~~ https://entangle-photo.org :| |: https://pixelfed.art/berrange ~~ https://fstop138.berrange.com :|
