[lttng-dev] lttng-consumerd crash on aarch64 due to x86 arch specific optimization

Beckius, Mikael mikael.beckius at windriver.com
Mon Feb 6 10:21:49 EST 2023


Hello Mathieu!

Sorry for the late reply. I was away for a few days.

I will have a look at your updated approach and get back to you on your other replies if still relevant, but in short:
- With __ARM_FEATURE_UNALIGNED defined 32-bit arm appears to support 2 and 4 bytes unaligned access
- Regarding 8 bytes I found this wording:
   "__ARM_FEATURE_UNALIGNED is defined if the target supports unaligned access in hardware, at least to the extent of being able
   to load or store an integer word at any alignment with a single instruction. (There may be restrictions on load-multiple and
   floating-point accesses.)" on https://developer.arm.com/documentation/101028/0012/5--Feature-test-macros
   and I think all the crash reports were about 8 bytes unaligned access on arm 32-bit
- Performance seems to improve for both aligned and unaligned access compared to using memcpy but your are right that a test needs to be carefully constructed
- 64-bit arm appears to support 2, 4 and 8 bytes unaligned access

Micke


More information about the lttng-dev mailing list