170. CompressDev QAT PMD Tests¶
170.1. Description¶
The QAT compression PMD provides poll mode compression & decompression driver support for the following hardware accelerator devices:
Intel QuickAssist Technology C62x
Intel QuickAssist Technology C3xxx
Intel QuickAssist Technology DH895x
The supported Compression/Decompression algorithm:
DEFLATE - using Fixed and Dynamic Huffman encoding
For more details, please reference to dpdk online programming guide. http://doc.dpdk.org/guides/compressdevs/qat_comp.html
170.2. Prerequisites¶
Intel QAT devices should be available in the platform. The QAT compression PMD is built by default with a standard DPDK build It depends on a QAT kernel driver.
A compress performance test app is added into DPDK to test CompressDev.
Calgary corpus is a collection of text and binary data files,commonly used for comparing data compression algorithms.
170.3. Software¶
dpdk: http://dpdk.org/git/dpdk Intel QuickAssist Technology Driver: https://01.org/packet-processing/intel%C2%AE-quickassist-technology-drivers-and-patches
170.4. General set up¶
1, Compile DPDK:
CC=gcc meson -Denable_kmods=True -Dlibdir=lib --default-library=static x86_64-native-linuxapp-gcc
ninja -C x86_64-native-linuxapp-gcc -j 110
2, Get the pci device id of QAT:
./dpdk/usertools/dpdk-devbind.py --status-dev crypto
3, Bind QAT VF port to dpdk:
./dpdk/usertools/dpdk-devbind.py --force --bind=vfio-pci 0000:1a:01.0 0000:1a:01.1
170.4.1. Test case¶
170.5. Test Case: Compressdev QAT PMD Unit test¶
Start test application and run qat pmd unit test:
./x86_64-native-linuxapp-gcc/app/test/dpdk-test -l1 -n1 -a qat_device_bus_id --log-level=qat:8
RTE>>compressdev_autotest
Verify all test cases passed in the test.
170.6. Test Case: Compressdev QAT PMD fixed function test¶
Run Compressdev qat pmd test with below sample commands:
./x86_64-native-linuxapp-gcc/app/dpdk-test-compress-perf -a qat_device_bus_id -l 4 \
-- --driver-name compress_qat --input-file file_name \
--compress-level level --num-iter number --huffman-enc fixed
Perform the test with fixed huffman-enc.
Test all the file types in calgary corpus, all files should pass the test.
170.7. Test Case: Compressdev QAT PMD dynamic function test¶
Run Compressdev qat pmd test with below sample commands:
./x86_64-native-linuxapp-gcc/app/dpdk-test-compress-perf -a qat_device_bus_id -l 4 \
-- --driver-name compress_qat --input-file file_name \
--compress-level level --num-iter number --huffman-enc dynamic
Perform the test with dynamic huffman-enc.
Test all the file types in calgary corpus, all files should pass the test.
170.8. Test Case: Compressdev QAT PMD big sgl fixed function test¶
Run Compressdev qat pmd test with below sample commands:
./x86_64-native-linuxapp-gcc/app/dpdk-test-compress-perf -a qat_device_bus_id -l 4 \
-- --driver-name compress_qat --input-file file_name --seg-sz segsize \
--compress-level level --num-iter number --extended-input-sz size \
--max-num-sgl-segs seg --huffman-enc fixed
Perform the test with big max-num-sgl-segs and fixed huffman-enc.
Test all the file types in calgary corpus, all files should pass the test.
170.9. Test Case: Compressdev QAT PMD big sgl dynamic function test¶
Run Compressdev qat pmd test with below sample commands:
./x86_64-native-linuxapp-gcc/app/dpdk-test-compress-perf -a qat_device_bus_id -l 4 \
-- --driver-name compress_qat --input-file file_name --seg-sz segsize \
--compress-level level --num-iter number --extended-input-sz size \
--max-num-sgl-segs seg --huffman-enc dynamic
Perform the test with big max-num-sgl-segs and dynamic huffman-enc.
Test all the file types in calgary corpus, all files should pass the test.
170.10. Test Case: Compressdev QAT PMD big seg-sz fixed function test¶
Run Compressdev qat pmd test with below sample commands:
./x86_64-native-linuxapp-gcc/app/dpdk-test-compress-perf -a qat_device_bus_id -l 4 \
-- --driver-name compress_qat --input-file file_name --seg-sz segsize \
--compress-level level --num-iter number --extended-input-sz size \
--max-num-sgl-segs seg --huffman-enc fixed
Perform the test with big seg-sz and fixed huffman-enc.
Test all the file types in calgary corpus, all files should pass the test.
170.11. Test Case: Compressdev QAT PMD big seg-sz dynamic function test¶
Run Compressdev qat pmd test with below sample commands:
./x86_64-native-linuxapp-gcc/app/dpdk-test-compress-perf -a qat_device_bus_id -l 4 \
-- --driver-name compress_qat --input-file file_name --seg-sz segsize \
--compress-level level --num-iter number --extended-input-sz size \
--max-num-sgl-segs seg --huffman-enc dynamic
Perform the test with big seg-sz and dynamic huffman-enc.
Test all the file types in calgary corpus, all files should pass the test.
170.12. Test Case: Compressdev QAT PMD external mbufs fixed function test¶
Run Compressdev qat pmd test with below sample commands:
./x86_64-native-linuxapp-gcc/app/dpdk-test-compress-perf -a qat_device_bus_id -l 4 \
-- --driver-name compress_qat --input-file file_name \
--compress-level level --num-iter number --external-mbufs \
--huffman-enc fixed
Perform the test with external-mbufs option and fixed huffman-enc.
Test all the file types in calgary corpus, all files should pass the test.
170.13. Test Case: Compressdev QAT PMD external mbufs dynamic function test¶
Run Compressdev qat pmd test with below sample commands:
./x86_64-native-linuxapp-gcc/app/dpdk-test-compress-perf -a qat_device_bus_id -l 4 \
-- --driver-name compress_qat --input-file file_name \
--compress-level level --num-iter number --external-mbufs \
--huffman-enc dynamic
Perform the test with external-mbufs option and dynamic huffman-enc.
Test all the file types in calgary corpus, all files should pass the test.
170.14. Test Case: Compressdev QAT PMD im buffer split op fixed function test¶
Run Compressdev qat pmd test with below sample commands:
./x86_64-native-linuxapp-gcc/app/dpdk-test-compress-perf -a qat_device_bus_id -l 4 \
-- --driver-name compress_qat --input-file file_name \
--compress-level level --num-iter number --seg-sz segsize \
--max-num-sgl-segs seg --extended-input-sz size \
--huffman-enc fixed
Perform the test with extended-input-sz, max-num-sgl-segs option and fixed huffman-enc.
Test all the file types in calgary corpus, all files should pass the test.
170.15. Test Case: Compressdev QAT PMD im buffer split op dynamic function test¶
Run Compressdev qat pmd test with below sample commands:
./x86_64-native-linuxapp-gcc/app/dpdk-test-compress-perf -a qat_device_bus_id -l 4 \
-- --driver-name compress_qat --input-file file_name \
--compress-level level --num-iter number --seg-sz segsize \
--max-num-sgl-segs seg --extended-input-sz size \
--huffman-enc dynamic
Perform the test with extended-input-sz, max-num-sgl-segs option and dynamic huffman-enc.
Test all the file types in calgary corpus, all files should pass the test.
170.16. Test Case: Compressdev QAT PMD fixed performance test¶
Run Compressdev qat pmd test with below sample commands:
./x86_64-native-linuxapp-gcc/app/dpdk-test-compress-perf -a qat_device_bus_id -l 4 \
-- --driver-name compress_qat --input-file file_name \
--compress-level level --num-iter number --huffman-enc fixed
Perform the test with fixed huffman-enc and calgary file.
Run the test with seg-sz 1k, 2k, 4k, 8k, 16k and 32k respectively.
170.17. Test Case: Compressdev QAT PMD dynamic performance test¶
Run Compressdev qat pmd test with below sample commands:
./x86_64-native-linuxapp-gcc/app/dpdk-test-compress-perf -a qat_device_bus_id -l 4 \
-- --driver-name compress_qat --input-file file_name \
--compress-level level --num-iter number --huffman-enc dynamic
Perform the test with dynamic huffman-enc and calgary file.
Run the test with seg-sz 1k, 2k, 4k, 8k, 16k and 32k respectively.