Re: [PATCH v8 08/14] crypto: iaa - Add IAA Compression Accelerator Documentation

From: Tom Zanussi
Date: Mon Aug 21 2023 - 15:07:05 EST


Hi Pavel,

On Mon, 2023-08-21 at 19:21 +0200, Pavel Machek wrote:
> Hi!
>
> > Because the IAA Compression Accelerator requires significant user
> > setup in order to be used properly, this adds documentation on the
> > iaa_crypto driver including setup, usage, and examples.
> >
> > Signed-off-by: Tom Zanussi <tom.zanussi@xxxxxxxxxxxxxxx>
>
>
> > +accel-config
> > +------------
> > +
> > +Unlike typical drivers, the iaa_crypto driver does not enable the
> > +device on driver load.  Due to complexity and configurability of
> > the
> > +accelerator devices, it was a design decision to have the user
> > +configure the device and manually enable the desired devices and
> > +workqueues.
>
> Is the driver really so special? Is it widely used besides of zswap?
> Could some kind of
> simple default configuration good enough for zswap be provided?

You're right, currently its main use is for zswap (though the original
submission also supported zram).

This idea of a simple default configuration makes sense and has come up
before. I'll try to come up with a good way to accomplish that in the
next revision.

>
> > +The userspace tool to help doing that is called accel-config. 
> > Using
> > +accel-config to configure device or loading a previously saved
> > config
> > +is highly recommended.  The device can be controlled via sysfs
> > +directly but comes with the warning that do this ONLY if you know
> > +exactly what you are doing.  This document will not cover the
> > sysfs
> > +interface but assumes you will be using accel-config.
>
> Not covering the interface here is okay, but we really should have
> description somewhere,
> and there should be pointer to it here.

OK, yeah, that also makes sense - I'll add something for that too.

>
> > +++ b/Documentation/driver-api/crypto/iaa/index.rst
> > @@ -0,0 +1,20 @@
> > +.. SPDX-License-Identifier: GPL-2.0
> > +
> > +=================================
> > +IAA (Intel Analytics Accelerator)
> > +=================================
> > +
> > +IAA provides hardware compression and decompression via the crypto
> > +API.
>
> Why is it called "analytics accelerator" when its main function is
> compression?
>

Well, the compression/decompression functions are only a part of what
the hardware provides, so I guess the designers used 'analytics
accelerator' as an umbrella term covering everything.

>From the hardware documentation, the IAA hardware "provides very high
throughput compression and decompression combined with analytics
primitive functions. The analytic functions are commonly used for
filtering data during analytic query processing. It primarily targets
applications such as big-data and in-memory analytics databases, as
well as application-transparent usages such as memory page
compression."

Hope that helps explain the naming..

Tom


> Best regards,
>                                                                      
>    Pavel