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

Reply via email to