This series improves the hash library's key comparison performance
and portability. The main goals are:

 - Hide internal implementation details to prevent future ABI breakage
 - Enable optimized key comparisons on all architectures (not just
   x86 and ARM64)
 - Add specialized compare functions for common small key sizes
   (2-20 bytes) to avoid memcmp overhead
 - Improve test coverage and code quality

Changes in v5:
 - Rebase onto latest main
 - New patch: remove spurious warnings in CRC32 algorithm selection
   that fired even when the requested algorithm was successfully used
 - Improved commit message for patch 4 (was patch 3)
 - New patch: convert hash unit tests to use test suite runner
   framework for structured output with per-test pass/fail status
 - New patch: add dedicated test for key compare functions that
   exercises all sizes in cmp_jump_table
 - Use table lookup instead of switch statement for key size selection
 - Add static_assert to verify table consistency
 - Fix minor return value issues in small key compare functions

Changes in v4:
 - Add test for more key sizes
 - Add a few more special case sizes

Stephen Hemminger (7):
  hash: move table of hash compare functions out of header
  hash: use static_assert
  hash: remove spurious warnings in CRC32 init
  hash: simplify key comparison across architectures
  hash: add support for common small key sizes
  app/test: convert hash test to use test suite runner
  test/hash: add test for key compare functions

 app/test/test_hash.c       | 249 +++++++++++++++++++++---------
 lib/hash/rte_cmp_arm64.h   |  62 +-------
 lib/hash/rte_cmp_generic.h |  35 +++++
 lib/hash/rte_cmp_x86.h     |  62 +-------
 lib/hash/rte_cuckoo_hash.c | 301 ++++++++++++++++++++++++++++++++-----
 lib/hash/rte_cuckoo_hash.h |  84 +----------
 lib/hash/rte_hash_crc.c    |   8 +-
 7 files changed, 490 insertions(+), 311 deletions(-)
 create mode 100644 lib/hash/rte_cmp_generic.h

-- 
2.51.0

Reply via email to