From 102731bd4004ff43e7b0427fa097f651a91e443a Mon Sep 17 00:00:00 2001 From: Michal Berger Date: Wed, 26 Feb 2020 12:35:23 +0100 Subject: [PATCH] test/bdev: Split crypto test and convert it to RPC calls Split is done based on the crypto driver type: - crypto_aesni - crypto_qat Change-Id: I47610eea7dd69defcbda9aa801a8bd8eeab820ee Signed-off-by: Michal Berger Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/1020 Tested-by: SPDK CI Jenkins Reviewed-by: Darek Stojaczyk Reviewed-by: Paul Luse Reviewed-by: Shuhei Matsumoto --- autotest.sh | 6 +++++- test/bdev/blockdev.sh | 33 ++++++++++++++++++++++++--------- test/bdev/gen_crypto.sh | 32 -------------------------------- 3 files changed, 29 insertions(+), 42 deletions(-) delete mode 100755 test/bdev/gen_crypto.sh diff --git a/autotest.sh b/autotest.sh index 6b32cbc60..2fc9d7622 100755 --- a/autotest.sh +++ b/autotest.sh @@ -290,7 +290,11 @@ if [ $SPDK_RUN_FUNCTIONAL_TEST -eq 1 ]; then fi if [ $SPDK_TEST_CRYPTO -eq 1 ]; then - run_test "blockdev_crypto" ./test/bdev/blockdev.sh "crypto" + run_test "blockdev_crypto_aesni" ./test/bdev/blockdev.sh "crypto_aesni" + # Proceed with the test only if QAT devices are in place + if [[ $(lspci -d:37c8) ]]; then + run_test "blockdev_crypto_qat" ./test/bdev/blockdev.sh "crypto_qat" + fi fi fi diff --git a/test/bdev/blockdev.sh b/test/bdev/blockdev.sh index 2195322f4..02f8c9943 100755 --- a/test/bdev/blockdev.sh +++ b/test/bdev/blockdev.sh @@ -107,13 +107,26 @@ function setup_gpt_conf() { fi } -function setup_crypto_conf() { - cat >$conf_file <<-EOF - [Malloc] - NumberOfLuns 3 - LunSizeInMB 16 - EOF - $testdir/gen_crypto.sh Malloc0 Malloc1 Malloc2 >> $conf_file +function setup_crypto_aesni_conf() { + # Malloc0 and Malloc1 use AESNI + "$rpc_py" <<-RPC + bdev_malloc_create -b Malloc0 16 512 + bdev_malloc_create -b Malloc1 16 512 + bdev_crypto_create Malloc0 crypto_ram crypto_aesni_mb 0123456789123456 + bdev_crypto_create Malloc1 crypto_ram2 crypto_aesni_mb 9012345678912345 + RPC +} + +function setup_crypto_qat_conf() { + # Malloc0 will use QAT AES_CBC + # Malloc1 will use QAT AES_XTS + "$rpc_py" <<-RPC + bdev_malloc_create -b Malloc0 16 512 + bdev_malloc_create -b Malloc1 16 512 + bdev_crypto_create Malloc0 crypto_ram crypto_qat 0123456789123456 + bdev_crypto_create -c AES_XTS -k2 0123456789123456 Malloc1 crypto_ram3 crypto_qat 0123456789123456 + RPC + "$rpc_py" bdev_get_bdevs -b Malloc1 } function setup_pmem_conf() { @@ -332,8 +345,10 @@ case "$test_type" in start_spdk_tgt; setup_nvme_conf;; gpt ) start_spdk_tgt; setup_gpt_conf;; - crypto ) - setup_crypto_conf;; + crypto_aesni ) + start_spdk_tgt; setup_crypto_aesni_conf;; + crypto_qat ) + start_spdk_tgt; setup_crypto_qat_conf;; pmem ) setup_pmem_conf;; rbd ) diff --git a/test/bdev/gen_crypto.sh b/test/bdev/gen_crypto.sh deleted file mode 100755 index 6afaac0a2..000000000 --- a/test/bdev/gen_crypto.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/env bash - -set -e - -rootdir=$(readlink -f $(dirname $0))/../.. -source "$rootdir/scripts/common.sh" - -# base_bdev will use QAT AES_CBC if available, otherwise AESNI -# base_bdev2 will always use AESNI -# base_bdev3 will use QAT AES_XTS if available, otherwise not used -# This makes sure that AESNI always gets tested, even if QAT is available. -base_bdev=$1 -base_bdev2=$2 -base_bdev3=$3 - -echo -echo "[crypto]" - -if [ -n "$base_bdev" ]; then - if [ $(lspci -d:37c8 | wc -l) -eq 0 ]; then - echo " CRY $base_bdev crypto_ram 0123456789123456 crypto_aesni_mb" - else - echo " CRY $base_bdev crypto_ram 0123456789123456 crypto_qat" - if [ -n "$base_bdev3" ]; then - echo " CRY $base_bdev3 crypto_ram3 0123456789123456 crypto_qat AES_XTS 0123456789123456" - fi - fi -fi - -if [ -n "$base_bdev2" ]; then - echo " CRY $base_bdev2 crypto_ram2 9012345678912345 crypto_aesni_mb" -fi