2014-11-20 11:15, Yerden Zhumabekov: > These patches bring a fallback mechanism to ensure that CRC32 hash is > calculated regardless of hardware support from CPU (i.e. SSE4.2 intrinsics). > Performance is also improved by slicing data in 8 bytes. > > Patches were tested on machines either with and without SSE4.2 support. > > Software implementation seems to be about 4-5 times slower than > SSE4.2-enabled one. Of course, they return identical results. > > Summary of changes: > * added CRC32 software implementation, which is used as a fallback in case > SSE4.2 is not available, or if SSE4.2 is intentionally disabled. > * added rte_hash_crc_set_alg() function to control availability of SSE4.2. > * added rte_hash_crc_8byte() function to calculate CRC32 on 8-byte operand. > * reworked rte_hash_crc() function which leverages both versions of CRC32 > hash calculation functions with 4 and 8-byte operands. > * removed compile-time checks from test_hash_perf and test_hash. > * setting default algorithm implementation as a constructor while application > startup. > * SSE4.2 intrinsics are implemented through inline assembly code. > * added additional run-time check for 64-bit support.
So you don't want to use the target attribute as suggested by Konstantin? Why the discussion ended without any acknowledgement? -- Thomas