HADOOP-19655: RISC-V Zbc (CLMUL) CRC32/CRC32C path
Description of PR
- Implements a CLMUL-based 16B fold + Barrett reduction algorithm, adapted from riscv-crc32-clmul.
- True interleaved (round-robin) multi-block pipeline (1–3 blocks) to increase ILP.
- Small buffers and tails fall back to the existing table-based software path.
- Runtime gating:
- Double-checked detection: “zbc” in /proc/cpuinfo AND a SIGILL-safe CLMUL probe.
How was this patch tested?
- Build (native profile):
- mvn -pl hadoop-common-project/hadoop-common -am -Pnative -DskipTests clean install
- Run benchmark:
- mvn -Pnative -DskipTests -Dexec.classpathScope=test -Dexec.mainClass=org.apache.hadoop.util.Crc32PerformanceTest
For code changes:
-
Does the title or this PR starts with the corresponding JIRA issue id (e.g. 'HADOOP-17799. Your PR title ...')? -
Object storage: have the integration tests been executed and the endpoint declared according to the connector-specific documentation? -
If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0? -
If applicable, have you updated the LICENSE
,LICENSE-binary
,NOTICE-binary
files?