[dpdk-users] Issue with cryptodev_qat_autotest on CentOS 7.2 host system using dpdk-2.2.0

Chinmaya Dwibedy ckdwibedy at gmail.com
Wed Jun 22 15:57:11 CEST 2016


Hi All,


I do have CentOS Linux release 7.2.1511 (Core) host system, where two Intel
QAT devices are installed. I have installed dpdk-2.2.0 and QAT driver as
mentioned in section 6.4. (i.e., Installation using 01.org QAT driver) of
http://dpdk.readthedocs.io/en/v16.04/cryptodevs/qat.html. I tested
"cryptodev_qat_autotest" under app/test. I found this test case to be
failed. It appears that, it the dequeue burst API fails to retrieve any
processed operations available from the queue pair (on the QAT Crypto
device), from the devices processed queue.  I have captured and attached
the console.log here.


Can anyone please suggest, is it an issue with the setup/configuration or
QAT PMD code? Kindly point me to right direction whenever you find me
wrong.Thank
you in advance for your time and support.


Here goes my configuration.



[root at localhost ~]# service qat_service status

There is 2 acceleration device(s) in the system:

 icp_dev0 - type=dh895xcc, inst_id=0, node_id=1,  bdf=83:00:0, #accel=6,
#engines=12, state=up

 icp_dev1 - type=dh895xcc, inst_id=1, node_id=1,  bdf=88:00:0, #accel=6,
#engines=12, state=up


[root at localhost ~]# lspci -nn | grep 0435

83:00.0 Co-processor [0b40]: Intel Corporation DH895XCC Series QAT
[8086:0435]

88:00.0 Co-processor [0b40]: Intel Corporation DH895XCC Series QAT
[8086:0435]

[root at localhost ~]#





[root at localhost ~]# lspci -nn|grep -e "QAT.*Virtual"

83:01.0 Co-processor [0b40]: Intel Corporation DH895XCC Series QAT Virtual
Function [8086:0443]

83:01.1 Co-processor [0b40]: Intel Corporation DH895XCC Series QAT Virtual
Function [8086:0443]

83:01.2 Co-processor [0b40]: Intel Corporation DH895XCC Series QAT Virtual
Function [8086:0443]

83:01.3 Co-processor [0b40]: Intel Corporation DH895XCC Series QAT Virtual
Function [8086:0443]

83:01.4 Co-processor [0b40]: Intel Corporation DH895XCC Series QAT Virtual
Function [8086:0443]

83:01.5 Co-processor [0b40]: Intel Corporation DH895XCC Series QAT Virtual
Function [8086:0443]

-------------------------------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------------------------------


88:04.1 Co-processor [0b40]: Intel Corporation DH895XCC Series QAT Virtual
Function [8086:0443]

88:04.2 Co-processor [0b40]: Intel Corporation DH895XCC Series QAT Virtual
Function [8086:0443]

88:04.3 Co-processor [0b40]: Intel Corporation DH895XCC Series QAT Virtual
Function [8086:0443]

88:04.4 Co-processor [0b40]: Intel Corporation DH895XCC Series QAT Virtual
Function [8086:0443]

88:04.5 Co-processor [0b40]: Intel Corporation DH895XCC Series QAT Virtual
Function [8086:0443]

88:04.6 Co-processor [0b40]: Intel Corporation DH895XCC Series QAT Virtual
Function [8086:0443]

88:04.7 Co-processor [0b40]: Intel Corporation DH895XCC Series QAT Virtual
Function [8086:0443]


[root at localhost ~]# lspci -nn|grep -e "QAT.*Virtual" | wc -l

64

[root at localhost ~]#


Note: This host is  capable of PCI passthrough and SR-IOV.



[root at localhost ~]# grep -i dmar /var/log/dmesg

[    0.000000] ACPI: DMAR 000000007b69a000 00130 (v01 INTEL   S2600WT
00000001 INTL 20091013)

[    0.135336] dmar: Host address width 46

[    0.135587] dmar: DRHD base: 0x000000fbffc000 flags: 0x0

[    0.135855] dmar: IOMMU 0: reg_base_addr fbffc000 ver 1:0 cap
d2078c106f0466 ecap f020de

[    0.136309] dmar: DRHD base: 0x000000c7ffc000 flags: 0x1

[    0.136569] dmar: IOMMU 1: reg_base_addr c7ffc000 ver 1:0 cap
d2078c106f0466 ecap f020de

[    0.137016] dmar: RMRR base: 0x0000007a3db000 end: 0x0000007a3ddfff

[    0.137274] dmar: ATSR flags: 0x0

[    0.137522] dmar: ATSR flags: 0x0

[root at localhost ~]# grep -i "iommu.*enabled" /var/log/dmesg

[    0.000000] Intel-IOMMU: enabled


[root at localhost test(keystone_admin)]# cat /proc/cmdline

BOOT_IMAGE=/vmlinuz-3.10.0-327.18.2.el7.x86_64 root=/dev/mapper/centos-root
ro rd.lvm.lv=centos/swap crashkernel=auto nomodeset rd.lvm.lv=centos/root
rhgb iommu=pt intel_iommu=on

[root at localhost test(keystone_admin)]#


The below output confirms that, QAT driver is correctly installed.


 [root at localhost ~]# cat /proc/icp_dh895xcc_dev0/version

+--------------------------------------------------+

| Hardware and Software versions for device 0      |

+--------------------------------------------------+

 Hardware Version:             A0 SKU2

 Firmware Version:             2.6.0

 MMP Version:                  1.0.0

 Driver Version:               2.6.0

 Lowest Compatible Driver:     2.3

 QuickAssist API CY Version:   1.9

 QuickAssist API DC Version:   1.6

+--------------------------------------------------+

[root at localhost ~]# cat /proc/icp_dh895xcc_dev1/version

+--------------------------------------------------+

| Hardware and Software versions for device 1      |

+--------------------------------------------------+

 Hardware Version:             A0 SKU2

 Firmware Version:             2.6.0

 MMP Version:                  1.0.0

 Driver Version:               2.6.0

 Lowest Compatible Driver:     2.3

 QuickAssist API CY Version:   1.9

 QuickAssist API DC Version:   1.6

+--------------------------------------------------+

[root at localhost ~]#



The # lspci -d:443  confirms the bdf of the 32 VF devices are available per
QAT device.



[root at localhost ~]# lspci -d:443

83:01.0 Co-processor: Intel Corporation DH895XCC Series QAT Virtual Function

83:01.1 Co-processor: Intel Corporation DH895XCC Series QAT Virtual Function

83:01.2 Co-processor: Intel Corporation DH895XCC Series QAT Virtual Function

83:01.3 Co-processor: Intel Corporation DH895XCC Series QAT Virtual Function

-------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------

88:04.3 Co-processor: Intel Corporation DH895XCC Series QAT Virtual Function

88:04.4 Co-processor: Intel Corporation DH895XCC Series QAT Virtual Function

88:04.5 Co-processor: Intel Corporation DH895XCC Series QAT Virtual Function

88:04.6 Co-processor: Intel Corporation DH895XCC Series QAT Virtual Function

88:04.7 Co-processor: Intel Corporation DH895XCC Series QAT Virtual Function

[root at localhost ~]#



*DPDK configuration options in config/defconfig_x86_64-native-linuxapp-gcc*



CONFIG_RTE_LIBRTE_PMD_AESNI_MB=n

CONFIG_RTE_LIBRTE_CRYPTODEV_DEBUG=y

CONFIG_RTE_LIBRTE_VIRTIO_PMD=n

CONFIG_RTE_LIBRTE_VIRTIO_DEBUG_INIT=n

CONFIG_RTE_LIBRTE_VIRTIO_DEBUG_DRIVER=n

CONFIG_RTE_LIBRTE_PMD_QAT=y

CONFIG_RTE_LIBRTE_PMD_QAT_DEBUG_INIT=y

CONFIG_RTE_LIBRTE_PMD_QAT_DEBUG_TX=y

CONFIG_RTE_LIBRTE_PMD_QAT_DEBUG_RX=y

CONFIG_RTE_LIBRTE_PMD_QAT_DEBUG_DRIVER=y

CONFIG_RTE_MAX_MEMSEG=4096

[root at localhost dpdk-2.2.0]#



Here goes my setup.sh



make config T=x86_64-native-linuxapp-gcc

sed -ri 's,(PMD_PCAP=).*,\1y,' build/.config

make install T=x86_64-native-linuxapp-gcc

mkdir -p /mnt/huge

mount -t hugetlbfs nodev /mnt/huge

echo 8192 >
/sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages

echo 8192 >
/sys/devices/system/node/node1/hugepages/hugepages-2048kB/nr_hugepages

sudo modprobe uio_pci_generic

sudo modprobe uio

rmmod igb_uio

insmod
./x86_64-native-linuxapp-gcc/build/lib/librte_eal/linuxapp/igb_uio/igb_uio.ko

echo -n "0000:83:01.0" > /sys/bus/pci/devices/0000\:83\:01.0/driver/unbind

echo "8086 0443" > /sys/bus/pci/drivers/igb_uio/new_id


The below OP confirms that, the QAT VF is bound to the DPDK UIO driver.



83:01.0 Co-processor: Intel Corporation DH895XCC Series QAT Virtual Function

        Subsystem: Intel Corporation Device 0000

        Control: I/O- Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B- DisINTx-

        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR- INTx-

        Latency: 0

        Region 0: [virtual] Memory at c8280000 (64-bit, non-prefetchable)
[size=4K]

        Region 2: [virtual] Memory at c82a0000 (64-bit, non-prefetchable)
[size=4K]

        Capabilities: [90] MSI: Enable- Count=1/1 Maskable+ 64bit+

                Address: 0000000000000000  Data: 0000

                Masking: 00000000  Pending: 00000000

        Kernel driver in use: igb_uio


Regards,

Chinmaya


More information about the users mailing list