[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