Skip to content

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?

合并请求报告

加载中