Summary: | [arm64] tools/test/avx_sig sporadically fails | ||
---|---|---|---|
Product: | Base System | Reporter: | Dmitry Chagin <dchagin> |
Component: | arm | Assignee: | freebsd-arm (Nobody) <freebsd-arm> |
Status: | In Progress --- | ||
Severity: | Affects Many People | CC: | Andrew, jfc |
Priority: | --- | ||
Version: | CURRENT | ||
Hardware: | arm64 | ||
OS: | Any |
Description
Dmitry Chagin
2023-05-30 18:57:05 UTC
This passes for me on 13.2-STABLE (Ampere) but fails immediately on 14.0-CURRENT (A-57), also with mismatches in registers 16 and 17. (In reply to John F. Carr from comment #1) btw, test succed in the Linuxulator, so looks like the problem in the signal related libc/libthr code This is allowed behaviour based on the ABI. avx_sig sets q0-q31 in simd_to_cpu, however as q16-q31 are caller saved (named v16-v31 in the ABI doc) we can't rely on my_pause not changing them. It looks like rtld might be where they are trashed as I can get it working reliably by putting a call to my_pause early in main to ensure any needed symbols have been resolved. This is only a work around however as it doesn't fix the ABI issue. (In reply to Andrew Turner from comment #3) Thank you! Indeed, lazy binding, Im confused by strange ktrace output, with 2 sigreturns. btw, on x86 rtld does not use simd, may be am64 will follow this too? ^Triage: issue does not seem to be "In Progress" although there was an active discussion. |