Embedded Intel® Core™ Processors
Communicate Intel® Core™ Hardware, Software, Firmware, Graphics Concerns
1202 Discussions

QAT Libcrypto patch on VM with SR-IOV?

SKyun
Beginner
1,830 Views

Hi, I have been trying to apply libcrypto (openssl) patch to a virtual function (VF) of QAT that is assigned to a qemu/kvm virtual machine.

First, I successfully created 32 virtual functions of QAT through SR-IOV as instructed on http://www.intel.com/content/dam/www/public/us/en/documents/application-notes/virtualization-technology-with-quickassist-technology-app-note.pdf Using Intel VT with Intel QuickAssist Technology. Then, I assigned one of the virtual function to qemu/kvm virtual machine I created. Here is the spec of both host and vm I created:

HOST

OS: CentOS Linux release 7.2.1511

kernel: 3.10.0-327.22.2.el7.x86_64

CPU: Intel(R) Xeon(R) CPU E5-2699 v3

QAT driver version: 2.6.0-60

VM

OS: CentOS Linux release 7.2.1511

kernel: 3.10.0-327.28.2.el7.x86_64

CPU: copied host cpu info

QAT driver version: 2.6.0-60

libcrypto patch version: 0.4.9-009

After installing the QAT virtual function driver on the VM, I can see the driver running on the vm:

Then, I followed https://01.org/packet-processing/downloads/libcrypto-openssl-sample-patch-intel%C2%AE-quickassist-technology Libcrypto Patch for Intel QuickAssist Technology to apply the patch.

And then I tried to verify the installation with openssl speed test, but I got the following error:

Seems like openssl cannot find QAT.

I've tried doing the exact same thing with QAT using pci-passthrough (i.e., assigning physical function to the vm instead of virtual function) and did not have any problem.

My guess is that it does not support virtual function but I'm not sure.

Did anybody have the same or similar problem? I cannot pinpoint the root cause because there is no reason for it to fail. I really need your help. Thanks a lot!!

Regards,

skyung

0 Kudos
2 Replies
Adolfo_S_Intel
Moderator
949 Views

Hello skyung

The only known issues that I see that can be related to your category are the following

IXA00382936:

The issue was observed using the openssl speed application patched with libcrypto* (OpenSSL*) Sample Patch for Intel(R) QuickAssist Technology. Libcrypto's openssl speed test uses multiple processes (instead of multiple threads) to measure performance. Each process has access to one crypto instance. When running a test with 16 or 32 processes, the test can fail from time to time reporting: [error] SalCtrl_AdfServicesStartedCheck() - : Sal Ctrl failed to start in given time [error] do_userStart() - : Failed to start services can't use that engine

However it seems to be fixed with the latest QAT version: https://01.org/packet-processing/intel%C2%AE-quickassist-technology-drivers-and-patches Intel QuickAssist Technology | 01.org

Here: https://01.org/sites/default/files/page/330683_qat_relnotes-001_3.pdf https://01.org/sites/default/files/page/330683_qat_relnotes-001_3.pdf

And IXA00381337:

Description:

In Pass-through of Intel® QuickAssist Technology Physical Function (PF) and the PCH device GbE ports to a virtual machine result in GbE ports being nonresponsive after Intel® QuickAssist Technology device initialization. Intel® QuickAssist Technology Virtual Function (VF) pass-through with GbE port passthrough is not affected.

Resolution:

After Intel® QuickAssist Technology device initialization, removing the igb module and reinserting it allows both devices to work as normal.

Here: https://01.org/sites/default/files/page/330683-010_qat_relnotes.pdf https://01.org/sites/default/files/page/330683-010_qat_relnotes.pdf

I will ask to the QAT contacts for additional advice.

Best Regards,

Adolfo Sanchez

0 Kudos
CarlosAM_INTEL
Moderator
949 Views

Hello skyung,

By the way, normally when this error is observed it is because it is possible that incorrect QAT configuration file placed in the /etc folder. Please ensure that this was copied to the /etc folder and qat_service was restarted.

Also, the qat_mem.ko driver is not loaded. Please ensure that the qat_mem driver has been loaded properly.

We hope that this information may help you.

Best Regards,

Carlos_A.

0 Kudos
Reply