Processus recommandé à suivre après la détection d’un dépassement lors de l’utilisation de Intel® QAT dans les opérations de compression de données.
Parfois, la décompression de QAT peut échouer, la valeur de retour de QAT cpaDcCompressData sera 11, ce qui correspond à un type d’erreur CPA_DC_OVERFLOW.
Un état de débordement n’est pas vraiment une erreur mais une exception qui peut être gérée. Il nécessite généralement une nouvelle soumission avec un tampon de sortie plus important. La procédure habituelle à suivre après la détection d’un débordement est la suivante :
- Soumettez à nouveau la demande en utilisant le même tampon source.
- Allouez une mémoire tampon de destination plus importante.
- Placez le total de contrôle de la demande précédente réussie dans la structure cpaDcRqResults .
L’exception de dépassement de compression se produit pour deux raisons :
- L’application a alloué une mémoire tampon de destination trop petite pour recevoir les données compressées, ou
- Une récupération s’est produite après une compression et une erreur vérifiée avec une charge utile d’entrée supérieure à 65 535 octets.
Pour minimiser l’impact de la nouvelle soumission des données après une exception de dépassement de capacité, la cpaDcDeflateCompressBound() API peut être utilisée. Cette API fournira à l’application une taille de tampon de destination recommandée pour éviter l’exception. Cette API doit être appelée par l’application avant d’allouer la mémoire tampon de destination.
Reportez-vous au Guide du programmeur Intel® QAT de votre version Intel® QAT matérielle respective pour plus de détails sur la gestion des exceptions de dépassement de capacité de compression des données.