KeDeng has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/22977 )

Change subject: [arm64] Fix SIGBUS errors for atomic operations
......................................................................


Patch Set 1:

(2 comments)

Thank you for your response. Our current environment runs on Docker instances 
deployed on ARM architecture. The operating system information is as follows:
# cat /etc/os-release
NAME="Rocky Linux"
VERSION="9.5 (Blue Onyx)"
ID="rocky"
ID_LIKE="rhel centos fedora"
VERSION_ID="9.5"
PLATFORM_ID="platform:el9"
PRETTY_NAME="Rocky Linux 9.5 (Blue Onyx)"
ANSI_COLOR="0;32"
LOGO="fedora-logo-icon"
CPE_NAME="cpe:/o:rocky:rocky:9::baseos"
HOME_URL="https://rockylinux.org/";
VENDOR_NAME="RESF"
VENDOR_URL="https://resf.org/";
BUG_REPORT_URL="https://bugs.rockylinux.org/";
SUPPORT_END="2032-05-31"
ROCKY_SUPPORT_PRODUCT="Rocky-Linux-9"
ROCKY_SUPPORT_PRODUCT_VERSION="9.5"
REDHAT_SUPPORT_PRODUCT="Rocky Linux"
REDHAT_SUPPORT_PRODUCT_VERSION="9.5"
The CPU information shows:
# lscpu
Architecture:           aarch64
CPU op-mode(s):         32-bit, 64-bit
Byte Order:             Little Endian
CPU(s):                 16
On-line CPU(s) list:    0-15
Vendor ID:              ARM
Model name:             Neoverse-N1
  Model:                1
  Thread(s) per core:   1
  Core(s) per cluster:  16
  Socket(s):            -
  Cluster(s):           1
  Stepping:             r3p1
  BogoMIPS:             50.00
  Flags:                fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp 
asimdhp cpuid asimdrdm lrcpc dcpop asimddp ssbs
NUMA:
  NUMA node(s):         1
  NUMA node0 CPU(s):    0-15

http://gerrit.cloudera.org:8080/#/c/22977/1/src/kudu/tablet/concurrent_btree.h
File src/kudu/tablet/concurrent_btree.h:

http://gerrit.cloudera.org:8080/#/c/22977/1/src/kudu/tablet/concurrent_btree.h@461
PS1, Line 461:   alignas(8) AtomicVersionValue versionPlaceholder_;
> This actually has a measurable performance impact on was graviton and kills
Would adding a new conditional compilation symbol help in this case?


http://gerrit.cloudera.org:8080/#/c/22977/1/src/kudu/tablet/concurrent_btree.h@1636
PS1, Line 1636: arch64__
              :     // Make sure the alignment is sufficient for the atomic 
version.
              :     constexpr size_t kMaxAlign = 
std::max(alignof(AtomicVersion),
              :                                           
alignof(LeafNode<Traits>));
              : #else
              :     constexpr size_t kMaxAlign = sizeof(AtomicVersion);
              : #endif
              :     void* m
> On what platform is it not 8?
This isn't the primary root cause - the alignas(8) above is actually the most 
critical fix. I suspect the SIGBUS was triggered because versionPlaceholder_ 
likely lost its natural alignment within the PACKED struct.



--
To view, visit http://gerrit.cloudera.org:8080/22977
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I6f8ea46308f942ded97d93d27ae466fd13a31b53
Gerrit-Change-Number: 22977
Gerrit-PatchSet: 1
Gerrit-Owner: KeDeng <[email protected]>
Gerrit-Reviewer: KeDeng <[email protected]>
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Marton Greber <[email protected]>
Gerrit-Reviewer: Zoltan Martonka <[email protected]>
Gerrit-Comment-Date: Thu, 05 Jun 2025 02:45:13 +0000
Gerrit-HasComments: Yes

Reply via email to