RTEMS | Add another machine exception signal map test (!868)
yang zhang (@yang.zhang)
gitlab at rtems.org
Tue Dec 9 09:45:12 UTC 2025
yang zhang created a merge request: https://gitlab.rtems.org/rtems/rtos/rtems/-/merge_requests/868
Project:Branches: yang.zhang/rtems:add_machine_exception_signal_map_case to rtems/rtos/rtems:main
Author: yang zhang
## Summary
Add another machine exception signal map test that is more aligned with the actual application scenario.
Utilizing `sigsetjmp`/`siglongjmp` mechanisms, when task was trapped
by `SIGILL`/`SIGSEGV`/`SIGFPE` it can continue to execute.
For `aarch64`, when call `_CPU_Exception_dispatch_and_resume`, it would check whether it need dispatch, but
after first trap it would return back to app without restore`isr_dispatch_disable`, which call path is like '_CPU_Instruction_illegal->trap->_Exception_Raise_signal->_AArch64_Exception_thread_dispatch_in_no_nest_isr->Thread_Do_dispatch->fault_handler->siglongjmp---->sigsetjmp',so
subsequent traps would call 'resume_no_need_thread_dispatch', so it would trap->resume->trap->resume, the system is hanged, we should restore `isr_dispatch_disable` in signal fault handler.
I test on aarch64/zynqmp_qemu.
<!-- Default settings, if it is a dropdown it will set after submission -->
--
View it on GitLab: https://gitlab.rtems.org/rtems/rtos/rtems/-/merge_requests/868
You're receiving this email because of your account on gitlab.rtems.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/bugs/attachments/20251209/8b2044f0/attachment-0001.htm>
More information about the bugs
mailing list