Overview
The Intel QAT OpenSSL Engine’s software fallback feature provides continuity of cryptographic operations when acceleration devices become unresponsive or undergo reset. This is achieved through the Intel QuickAssist Heartbeat feature.Heartbeat Feature
The Intel QuickAssist Heartbeat feature provides:- Device Health Monitoring: Detects unresponsive acceleration devices
- Reset Notifications: Notifies the engine when device reset starts and ends
- Instance Management: Suspends QAT instances during device reset
Automatic Fallback Behavior
When software fallback is enabled, the engine exhibits the following behavior:During Device Reset
- In-Flight Requests: Requests already submitted to the failed device that haven’t completed are handled on-core and will complete successfully
-
New Requests: Incoming requests while the device is offline are either:
- Submitted to other available acceleration devices (if any)
- Handled on-core if no devices are available
- Device Recovery: Once the device comes back online, new requests can use instances from that device again
The fallback process is transparent to applications. The only noticeable effect is potential performance degradation until the acceleration device recovers.
Requirements
Supported Hardware
The Heartbeat feature is supported on:- Intel Xeon with Intel C62X Series Chipset
- Intel Xeon Scalable Processor family with Intel QAT Gen4/Gen4m
Supported Drivers
- Linux Hardware v1.7
- Linux Hardware v1.8
- Linux Hardware v2.0 (qatlib intree)
- FreeBSD Hardware v2.0 (OOT package)
Supported Algorithms
The following algorithm types support software fallback:- Asymmetric PKE: All asymmetric algorithms supported by QAT Engine/Provider
- Key Derivation: All key derivation algorithms
- Symmetric Ciphers:
- AES-GCM
- AES-CCM
- ChaCha20-Poly1305
- AES-CBC chained ciphers
Software fallback for symmetric algorithms is only supported on FreeBSD platforms.
Configuration
Driver Configuration
Enable automatic reset on error in the device configuration file/etc/<device>.conf:
Engine Configuration
Enable software fallback in your application using engine control messages, or manually set:Testing Software Fallback
Prerequisites
-
Build QAT Driver with Heartbeat Simulation:
-
Configure Device for Auto-Reset:
Edit
/etc/<device>.confto include: -
OpenSSL Version Compatibility:
The driver must be built with the same version of OpenSSL as the application. Set these environment variables if needed:
Test Procedure
-
Enable Software Fallback:
Set
enable_sw_fallback = 1ine_qat.cor enable via Engine Control messages at runtime. - Build QAT Engine: Follow the standard build instructions.
-
Run OpenSSL Speed Test:
-
Inject Device Failure:
-
Check Device Status:
0= device failure1= device active
- Verify Success: On successful software fallback, the OpenSSL speed test continues without errors despite the device failure.
Expected Results
- The test continues running after device failure injection
- Performance may decrease while the device is offline
- No cryptographic operation errors occur
- Operations resume normal performance after device recovery