Intel
®
EP80579 Software for Security Applications on Intel
®
QuickAssist Technology
August 2009 PG
Order Number: 320183-004US 61
Using the Intel
®
QuickAssist Technology Cryptographic API—Security Software
12.2.2.1 Interrupt Coalescing
Interrupt coalescing is the combining of several interrupts into one interrupt. This
feature is available on Intel
®
EP80579 Integrated Processor. The user may configure
the duration of time over which to collect the interrupts. See Table 7, “Resource
Variables” on page 33 for descriptions of the relevant variables:
• ET_RING_LOOKASIDE_INTERRUPT_COALESCING_ENABLE
• ET_RING_LOOKASIDE_COALESCE_TIMER_NS
12.2.3 Engine and Priority Support
The Cryptographic API is designed to support multiple security services units, or
“engines”. The engine is specified using the CpaInstanceHandle handle type. This
handle will represent a specific engine within the system and will be passed into the
symmetric and asymmetric API.
Note: EP80579 with QuickAssist only supports one engine; this is specified through passing in
the value CPA_INSTANCE_HANDLE_SINGLE to the API for the acceleration handle.
The API tracks the number of outstanding sessions per handle and for public key, the
number of outstanding requests.
The API also has support for priorities per request. In the current release, two levels of
priorities are supported: High priority or Normal priority.
The software uses a weighted round robin-based priority scheme. Each ring has an
assigned negative 'weight' parameter. Every time a particular ring is polled, its current
weight is increased. Once the weight becomes zero, the weight is reloaded with its
assigned initial value and the poll moves to the next non-empty ring.
High priority rings have a larger negative value, meaning they are checked more
frequently before jumping to the next ring.
12.2.4 Statistics
The Cryptographic API supports statistics retrieval and display for the individual
symmetric and asymmetric components. For further information, refer to the API
manual. The following functions are supported:
• Retrieve statistics (symmetric and asymmetric components). The statistics are
retrieved on a per-instance basis - the information stored includes the following:
— number of symmetric sessions initialized, removed and errors
— numbers of requested operations, completed operations, and failed operations
(symmetric and asymmetric components)
12.3 Symmetric Cryptographic API Data Flow
Data flow for the Cryptographic API is shown in Figure 18 and Figure 19 (asynchronous
and synchronous). The assumption here is that the hardware is already initialized and
ready to process commands.