Hello Peter Rozsa, Michael Smith, Impala Public Jenkins,
I'd like you to reexamine a change. Please visit
http://gerrit.cloudera.org:8080/24888
to look at the new patch set (#2).
Change subject: IMPALA-15369: Check for the CRC32 extension at startup on ARM64
......................................................................
IMPALA-15369: Check for the CRC32 extension at startup on ARM64
On aarch64, Impala is built with -march=armv8-a+crc, and native code
and codegen use CRC32 instructions for hashing (HashUtil::Hash(),
LlvmCodeGen::GetHashFunction()) without checking for them at runtime.
The CRC32 extension is optional in ARMv8.0, so on such CPUs the daemons
crash with SIGILL once a CRC32 code path runs, instead of failing at
startup with a clear message.
This change adds a CpuInfo::CRC32 hardware flag. CpuInfo::Init() now
also parses the 'Features' line of /proc/cpuinfo, which is where the
kernel lists the CPU features on aarch64 (x86_64 uses 'flags').
CpuInfo::EnforceCpuRequirements() fails on aarch64 if CRC32 is not
supported. All daemons already call it from InitCommonRuntime() and
exit with an error message if it fails, like for the AVX/AVX2
requirement on x86_64.
Testing:
- Core tests show no new errors on ARM machine
Change-Id: Ic01f8f8009e6e2d8dbfd324d83353b0d4dbf1d4c
Assisted-by: Claude Opus 5.5 (Claude Code)
---
M be/src/util/cpu-info.cc
M be/src/util/cpu-info.h
2 files changed, 17 insertions(+), 4 deletions(-)
git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/88/24888/2
--
To view, visit http://gerrit.cloudera.org:8080/24888
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Ic01f8f8009e6e2d8dbfd324d83353b0d4dbf1d4c
Gerrit-Change-Number: 24888
Gerrit-PatchSet: 2
Gerrit-Owner: Zoltan Borok-Nagy <[email protected]>
Gerrit-Reviewer: Impala Public Jenkins <[email protected]>
Gerrit-Reviewer: Michael Smith <[email protected]>
Gerrit-Reviewer: Peter Rozsa <[email protected]>