Logical Instances Section
This section allows the configuration of logical instances in each address domain (kernel space and individual user space processes).
The address domains are in the following format:
For the kernel address domain:
[KERNEL]
targeted to Linux* Kernel Crypto Framework (LKCF).For user process address domains:
[xxxxx]
, wherexxxxx
may be any ASCII value that uniquely identifies the user mode process.
In user space, to allow the driver to configure the logical instances associated with a user process correctly, the process must call the function
icp_sal_userStart
passing the xxxxx
string during process initialization. When the user space process is finished, it must call the function
icp_sal_userStop
to free resources. Refer to User Space Access Configuration Functions for more information.
A single VF configured for the SR-IOV use case cannot have both user space instances and kernel space instances. Separate VFs must be created for user space and kernel space.
The NumProcesses
parameter (in the User Process section) indicates the max number of user space processes within that section name with access to instances on this device. Refer to icp_sal_userStart for more information.
The items that can be configured for a logical instance are:
The name of the logical instance.
The polling mode.
The core to which the instance is affinitized (optional).
[KERNEL] Section
In the [KERNEL]
section of the configuration file, information about the number and type of kernel instances can be defined. This table describes the parameters that determine the number of kernel instances for each service.
Note
The maximum number of cryptographic and data compression instances supported per Intel® QAT Endpoint is 32. For exceptions refer to Increasing the Maximum Number of Processes/Instances.
Parameter |
Description |
Default |
Range |
---|---|---|---|
|
Specifies the number of cryptographic instances. Note: Depends on the number of allocations to other services. |
0 |
0 to 32 |
|
Specifies the number of data compression instances. Note: Depends on the number of allocations to other services. |
0 |
0 to 32 |
User Process [xxxxx] Sections
There is one [xxxxx] section of the configuration file for each Intel® QAT Endpoint to be configured. In each [xxxxx] section of the
configuration file, user space access to the Intel® QAT Endpoint can be configured. Parameters for each user process instance can also
be defined. Common names for this section are [SSL]
or [SHIM]
Note
Check the SKU information for your specific device to determine how many Intel® QAT Endpoints the device contains.
This table shows the parameters in the configuration file that can be set for user process [xxxxx] sections.
Parameter |
Description |
Default |
Range |
---|---|---|---|
|
The number of user space processes with section name [xxxxx] that have access to this device. The maximum number of processes that can call Caution: Resources are pre-allocated. If this parameter value is set too high, the driver fails to load. |
1 |
For constraints, see Maximum Number of Process Calculations. For exceptions, see Increasing the Maximum Number of Processes/Instances. |
|
Indicates if the user space processes in this section are limited to only access instances on this Intel® QAT Endpoint. |
0 |
0 (disabled, processes in this section can access multiple Intel® QAT Endpoints), or 1 (enabled, processes in this section can only access this Intel® QAT Endpoint). For additional information, see Configuring Multiple Processes on a System with Multiple Intel® QAT Endpoints. |
|
Specifies the number of cryptographic instances. Note: Depends on the number of allocations to other services. |
6 |
0 to 32. For exceptions, see Increasing the Maximum Number of Processes/Instances. |
|
Specifies the number of data compression instances. Note: Depends on the number of allocations to other services. |
2 |
0 to 32. For exceptions, see Increasing the Maximum Number of Processes/Instances. |
Cryptographic Logical Instance Parameters
The following table shows the parameters that can be set for cryptographic logical instances.
Note
Default denotes the value in the configuration file when shipped.
Parameter |
Description |
Default |
Range |
---|---|---|---|
|
Specifies the name of cryptographic instance number X. |
IPSec0 for |
String (max. 64 characters) |
|
Specifies if cryptographic instance number x works in poll mode, interrupt mode or epoll mode. |
0 for kernel space instances 1 for user space instance |
0 (interrupt mode) for instances in the 1 (poll mode) for instances in user space sections. 2 (epoll mode event based polling mode) for instances in user space section. |
|
Specifies the core to which the instance should be affinitized. |
Varies depending on the value of X. |
0 to max. number of cores in the system. |
Data Compression Logical Instance Parameters
This table shows the parameters in the configuration file that can be set for data compression logical instances.
Parameter |
Description |
Default |
Range |
---|---|---|---|
|
Specifies the name of data compression instance number X. |
IPComp0 |
String (max. 64 characters) |
|
Specifies if data compression instance number x works in poll mode, interrupt mode or epoll mode. |
0 for kernel space instances 1 for user space instances |
0 (interrupt mode) for instances in the 1 (poll mode) for instances in the 2 (epoll mode event based polling mode) for instances in user space section. |
|
Specifies the core to which the data compression instance should be affinitized. |
Varies depending on the value of X. |
0 to max. number of cores in the system. |
Note
The maximum number of data compression instances supported is 64.
Default denotes the value in the configuration file when shipped.
Setting the Core Affinity Parameter for a Logical Instance
When instances are configured with IsPolled = 1
(Polling mode), the parameter CoreAffinity
does not have any impact.
Although not used, it is a valid parameter and applications can query the value using cpaCyInstanceGetInfo2
(see coreAffinity
bitmask in CpaInstanceInfo2
). For example, the sample code affinitizes the thread that uses an instance to the core indicated in CoreAffinity
the config file for that instance.
For instances configured in Interrupt Mode (IsPolled = 2
in user space (epoll) and IsPolled = 0
in kernel space), the value of CoreAffinity
is used to affinitize the interrupt handler to that core.