[Accel-config] [PATCH v1 1/2] accel-config/test: Add op mask to check if an op is available

Rex Zhang <[email protected]> Wed, 23 Aug 2023 11:22:32 +0800
Newsgroups dev.linux.lists.accel-config
Message-ID <[email protected]>
Several operations were removed in IAA2.0 specification. In idxd-config,
keep the related code about removed operations, define op mask for
comparing against the /sys/bus/dsa/devices/iax1/op_cap to check if an
operation is available or not. Whether to do the operation or not
depends on the checking result.

This commit is for defining the operation masks.

Signed-off-by: Rex Zhang <[email protected]>
---
 test/iaa_user_test_runner.sh | 47 ++++++++++++++++++++++++++++++++++++
 1 file changed, 47 insertions(+)

diff --git a/test/iaa_user_test_runner.sh b/test/iaa_user_test_runner.sh
index c8f2686..2887fad 100755
--- a/test/iaa_user_test_runner.sh
+++ b/test/iaa_user_test_runner.sh
@@ -14,6 +14,53 @@ VENDOR_ID=`lspci -n -s ${DBDF} | awk -F ' ' '{print $NF}' | awk -F ':' '{print $
 DEVICE_ID=`lspci -n -s ${DBDF} | awk -F ' ' '{print $NF}' | awk -F ':' '{print $2}'`
 VFIO_BINDED=0
 
+IAA_OPCODE_NOOP=0x0
+IAA_OPCODE_TRANSL_FETCH=0xa
+IAA_OPCODE_DECRYPT=0x40
+IAA_OPCODE_ENCRYPT=0x41
+IAA_OPCODE_DECOMPRESS=0x42
+IAA_OPCODE_COMPRESS=0x43
+IAA_OPCODE_CRC64=0x44
+IAA_OPCODE_ZDECOMPRESS32=0x48
+IAA_OPCODE_ZDECOMPRESS16=0x49
+IAA_OPCODE_ZDECOMPRESS8=0x4a
+IAA_OPCODE_ZCOMPRESS32=0x4c
+IAA_OPCODE_ZCOMPRESS16=0x4d
+IAA_OPCODE_ZCOMPRESS8=0x4e
+IAA_OPCODE_SCAN=0x50
+IAA_OPCODE_SET_MEMBERSHIP=0x51
+IAA_OPCODE_EXTRACT=0x52
+IAA_OPCODE_SELECT=0x53
+IAA_OPCODE_RLE_BURST=0x54
+IAA_OPCODE_FIND_UNIQUE=0x55
+IAA_OPCODE_EXPAND=0x56
+
+IAA_OPCODE_MASK_NOOP=$((1 << IAA_OPCODE_NOOP))
+IAA_OPCODE_MASK_TRANSL_FETCH=$((1 << IAA_OPCODE_TRANSL_FETCH))
+IAA_OPCODE_MASK_DECRYPT=$((1 << IAA_OPCODE_DECRYPT))
+IAA_OPCODE_MASK_ENCRYPT=$((1 << IAA_OPCODE_ENCRYPT))
+IAA_OPCODE_MASK_DECOMPRESS=$((1 << IAA_OPCODE_DECOMPRESS))
+IAA_OPCODE_MASK_COMPRESS=$((1 << IAA_OPCODE_COMPRESS))
+IAA_OPCODE_MASK_CRC64=$((1 << IAA_OPCODE_CRC64))
+IAA_OPCODE_MASK_ZDECOMPRESS32=$((1 << IAA_OPCODE_ZDECOMPRESS32))
+IAA_OPCODE_MASK_ZDECOMPRESS16=$((1 << IAA_OPCODE_ZDECOMPRESS16))
+IAA_OPCODE_MASK_ZDECOMPRESS8=$((1 << IAA_OPCODE_ZDECOMPRESS8))
+IAA_OPCODE_MASK_ZCOMPRESS32=$((1 << IAA_OPCODE_ZCOMPRESS32))
+IAA_OPCODE_MASK_ZCOMPRESS16=$((1 << IAA_OPCODE_ZCOMPRESS16))
+IAA_OPCODE_MASK_ZCOMPRESS8=$((1 << IAA_OPCODE_ZCOMPRESS8))
+IAA_OPCODE_MASK_SCAN=$((1 << IAA_OPCODE_SCAN))
+IAA_OPCODE_MASK_SET_MEMBERSHIP=$((1 << IAA_OPCODE_SET_MEMBERSHIP))
+IAA_OPCODE_MASK_EXTRACT=$((1 << IAA_OPCODE_EXTRACT))
+IAA_OPCODE_MASK_SELECT=$((1 << IAA_OPCODE_SELECT))
+IAA_OPCODE_MASK_RLE_BURST=$((1 << IAA_OPCODE_RLE_BURST))
+IAA_OPCODE_MASK_FIND_UNIQUE=$((1 << IAA_OPCODE_FIND_UNIQUE))
+IAA_OPCODE_MASK_EXPAND=$((1 << IAA_OPCODE_EXPAND))
+
+OP_CAP0=`cat /sys/bus/dsa/devices/iax1/op_cap | awk -F ',' '{print $NF}'`
+OP_CAP0="0x$OP_CAP0"
+OP_CAP2=`cat /sys/bus/dsa/devices/iax1/op_cap | awk -F ',' '{print $(NF - 2)}'`
+OP_CAP2="0x$OP_CAP2"
+
 trap err_exit ERR
 
 [ ! -f "$IAATEST" ] && echo "fail: $LINENO" && exit 1
-- 
2.25.1