On Wed, May 07, 2025 at 10:23:53AM +0800, Herbert Xu wrote: > On Tue, May 06, 2025 at 04:38:11PM +0100, Cabiddu, Giovanni wrote: > > > > > We'd have to enhance the compression format specifier to make it > > > configurable in the sense: if accelerator is available use it, otherwise > > > do CPU and synchronous compression. > > For usability, wouldn't it be better to have a transparent solution? If > > an accelerator is present, use it, rather than having a configuration > > knob. > > If you go through the Crypto API you won't need to add a new knob > at all. > > The Crypto API is already configurable and comes with a knob > pre-installed. Just download crconf and you can configure which > algorithm will be used by default: > > https://git.code.sf.net/p/crconf/code First time I hear about such tool and given what it does I think it should have better visibility and presence also in "the other" git sources. It's not mentioned in linux Documentation either. SourceForge is not taken seriously for quite some time and the project landing page https://sourceforge.net/projects/crconf/ matches the pattern of abandoned SF projects, last commit 5 years ago. The first hit on gihub is https://github.com/Thermi/crconf and at least it matches the SF commits. The command line interface follows the iproute2 style that is arguably hard to navigate: $ ./crconf Usage: crconf add { ALG | DRIVER } TYPE [ PRIORITY ] crconf del DRIVER TYPE crconf update DRIVER TYPE [ PRIORITY ] crconf show { DRIVER TYPE | all } crconf help ALG := alg <alg-name> DRIVER := driver <driver-name> TYPE := type ALGO-TYPE PRIORITY := priority <number> ALGO-TYPE := { 1 | 2 | 3 | 5 | 8 | 10 | 11 | 12 | 13 | 14 | 15 } 1 == alg type cipher 2 == alg type compress 3 == alg type aead 5 == alg type skcipher 8 == alg type kpp 10 == alg type acompress 11 == alg type scompress 12 == alg type rng 13 == alg type akcipher 14 == alg type hash 14 == alg type shash 15 == alg type ahash The manual page lacks any useful examples and figuring out how to set the priority took me a few minutes of grepping in /proc/crypto, trial and error to end up with: sudo ./crconf update driver sha256-generic type 14 priority 1000 The usability has a lot of room for improvement. Anyway, assuming there will be a maintained, packaged in distros and user friendly tool to tweak the linux crypto subsystem I agree we don't have to do it in the filesystem or other subsystems.