
Intel QuickAssist Technology Software for Linux*
Programmer’s Guide June 2020
4 Document Number: 336210-013
4.1 Configuration File Overview.................................................................................37
4.2 General Section.................................................................................................37
4.2.1 General Parameters ................................................................................38
4.3 Logical Instances Section....................................................................................39
4.3.1 [KERNEL] Section ...................................................................................40
4.3.2 [KERNEL_QAT] Section............................................................................40
4.3.3 User Process [xxxxx] Sections ..................................................................41
4.3.3.1 Maximum Number of Process Calculations ....................................42
4.3.3.2 Increasing the Maximum Number of Processes/Instances................42
4.3.3.3 Configuring Instances for Virtual Functions ...................................44
4.3.4 Cryptographic Logical Instance Parameters ................................................45
4.3.5 Data Compression Logical Instance Parameters ..........................................45
4.3.6 Setting the Core Affinity Parameter for a Logical Instance ............................46
4.4 Configuring Multiple Intel
®
QuickAssist Technology Endpoints in a System ................46
4.5 Configuring Multiple Processes on a System with Multiple Intel
®
QAT Endpoints .........47
4.6 Sample Configuration File ...................................................................................49
5 Supported APIs........................................................................................................50
5.1 Intel QuickAssist Technology APIs ........................................................................50
5.1.1 Intel
®
QAT API Limitations .......................................................................50
5.1.1.1 Resubmitting After Getting an Overflow Error ................................52
5.1.1.2 Dynamic Compression for Data Compression Service .....................54
5.1.1.3 Maximal Expansion with Auto Select Best Feature for Compression ..54
5.1.1.4 Maximal Expansion and Destination Buffer Size .............................55
5.1.2 Data Plane APIs Overview ........................................................................56
5.1.2.1 IA Cycle Count Reduction When Using Data Plane APIs...................56
5.1.2.2 Usage Constraints on the Data Plane APIs ....................................58
5.1.2.3 Cryptographic and Data Compression API Descriptions ...................58
5.1.3 Recovering from a Compress and Verify error .............................................58
5.1.4 Counting Recovered Compression Errors ....................................................59
5.1.5 Compress and Verify Error log in Sysfs: .....................................................60
5.2 Additional APIs ..................................................................................................60
5.2.1 Dynamic Instance Allocation Functions ......................................................60
5.2.1.1 icp_sal_userCyGetAvailableNumDynInstances ...............................61
5.2.1.2 icp_sal_userDcGetAvailableNumDynInstances ...............................62
5.2.1.3 icp_sal_userCyInstancesAlloc......................................................62
5.2.1.4 icp_sal_userDcInstancesAlloc......................................................63
5.2.1.5 icp_sal_userCyFreeInstances ......................................................63
5.2.1.6 icp_sal_userDcFreeInstances ......................................................64
5.2.1.7 icp_sal_userCyGetAvailableNumDynInstancesByDevPkg .................64
5.2.1.8 icp_sal_userDcGetAvailableNumDynInstancesByDevPkg .................65
5.2.1.9 icp_sal_userCyInstancesAllocByDevPkg........................................65
5.2.1.10 icp_sal_userDcInstancesAllocByDevPkg ........................................66
5.2.1.11 icp_sal_userCyGetAvailableNumDynInstancesByPkgAccel ...............66
5.2.1.12 icp_sal_userCyInstancesAllocByPkgAccel ......................................67
5.2.2 IOMMU Remapping Functions ...................................................................67
5.2.2.1 icp_sal_iommu_get_remap_size..................................................67
5.2.2.2 icp_sal_iommu_map..................................................................68
5.2.2.3 icp_sal_iommu_unmap ..............................................................68
5.2.2.4 IOMMU Remapping Function Usage..............................................69
5.2.3 Polling Functions.....................................................................................69
5.2.3.1 icp_sal_pollBank .......................................................................70
5.2.3.2 icp_sal_pollAllBanks...................................................................70
5.2.3.3 icp_sal_CyPollInstance ...............................................................71
5.2.3.4 icp_sal_DcPollInstance ...............................................................71
5.2.3.5 icp_sal_CyPollDpInstance ...........................................................72
5.2.3.6 icp_sal_DcPollDpInstance ...........................................................73