Message ID | 20240509113703.578583-1-sergey.portnoy@intel.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Herbert Xu |
Headers | show |
Series | crypto: tcrypt - add skcipher speed for given alg | expand |
> -----Original Message----- > From: Sergey Portnoy <sergey.portnoy@intel.com> > Sent: Thursday, May 9, 2024 6:36 AM > To: herbert@gondor.apana.org.au > Cc: linux-crypto@vger.kernel.org; qat-linux@intel.com > 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@intel.com> > --- > 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.
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]; static const int block_sizes[] = { 16, 64, 128, 256, 1024, 1420, 4096, 0 }; static const int aead_sizes[] = { 16, 64, 256, 512, 1024, 1420, 4096, 8192, 0 }; @@ -2807,6 +2808,18 @@ static int do_test(const char *alg, u32 type, u32 mask, int m, u32 num_mb) speed_template_16_32, num_mb); break; + 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; } return ret;
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@intel.com> --- crypto/tcrypt.c | 13 +++++++++++++ 1 file changed, 13 insertions(+)