The current net CRC API is not thread-safe, this patch solves this by adding another, thread-safe API functions. This API is also safe to use across multiple processes, yet with limitations on max-simd-bitwidth, which will be checked only by the process that created the CRC context; all other processes will use the same CRC function when used with the same CRC context. It is an undefined behavior when process binaries are compiled with different SIMD capabilities when the same CRC context is used
v2: - removed old API - added multi-process support - replaced test cases - marked internal functions as __rte_internal Arkadiusz Kusztal (3): net: add thread-safe crc api crypto/qat: use process safe crc api test/crc: replace thread-unsafe api functions app/test/test_crc.c | 168 ++++++++----------- doc/guides/cryptodevs/qat.rst | 6 + drivers/crypto/qat/qat_sym.h | 6 +- drivers/crypto/qat/qat_sym_session.c | 3 + drivers/crypto/qat/qat_sym_session.h | 2 + lib/net/net_crc.h | 19 ++- lib/net/rte_net_crc.c | 309 ++++++++++------------------------- lib/net/rte_net_crc.h | 40 +---- lib/net/version.map | 18 +- 9 files changed, 204 insertions(+), 367 deletions(-) -- 2.13.6