> -----Original Message----- > From: Sergey Portnoy <sergey.portnoy@xxxxxxxxx> > Sent: Thursday, May 9, 2024 6:36 AM > To: herbert@xxxxxxxxxxxxxxxxxxx > Cc: linux-crypto@xxxxxxxxxxxxxxx; qat-linux@xxxxxxxxx > Subject: [PATCH] crypto: tcrypt - add skcipher speed for given alg > > Allow to run skcipher speed for given algorithm. > Two separate cases are added to cover ENCRYPT and DECRYPT > directions. > > Example: > modprobe tcrypt mode=611 alg="qat_aes_xts" klen=32 > > If succeed, the performance numbers will be printed in dmesg: > testing speed of multibuffer qat_aes_xts (qat_aes_xts) encryption > test 0 (256 bit key, 16 byte blocks): 1 operation in 14596 cycles (16 > bytes) > ... > test 6 (256 bit key, 4096 byte blocks): 1 operation in 8053 cycles > (4096 bytes) > > Signed-off-by: Sergey Portnoy <sergey.portnoy@xxxxxxxxx> > --- > crypto/tcrypt.c | 13 +++++++++++++ > 1 file changed, 13 insertions(+) > > diff --git a/crypto/tcrypt.c b/crypto/tcrypt.c > index 8aea416f6480..73bea38c8112 100644 > --- a/crypto/tcrypt.c > +++ b/crypto/tcrypt.c > @@ -68,6 +68,7 @@ static int mode; > static u32 num_mb = 8; > static unsigned int klen; > static char *tvmem[TVMEMSIZE]; > +static char speed_template[2]; u8 would better match the source: static unsigned int klen; module_param(klen, uint, 0); MODULE_PARM_DESC(klen, "Key length (defaults to 0)"); and use as the keysize argument in: static void test_mb_skcipher_speed(const char *algo, int enc, int secs, struct cipher_speed_template *template, unsigned int tcount, u8 *keysize, u32 num_mb) and the other constant speed test arrays like: static u8 speed_template_8[] = {8, 0}; static u8 speed_template_16[] = {16, 0}; static u8 speed_template_24[] = {24, 0}; ... > + case 611: > + speed_template[0] = klen; > + if (alg) > + test_mb_skcipher_speed(alg, ENCRYPT, sec, NULL, 0, > + speed_template, num_mb); > + break; > + case 612: > + speed_template[0] = klen; > + if (alg) > + test_mb_skcipher_speed(alg, DECRYPT, sec, NULL, 0, > + speed_template, num_mb); > + break; Since it's only two bytes, perhaps it should just be an on-stack variable inside each of those if blocks, not a file-scope variable.