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.


_______________________________________________
bugs mailing list
[email protected]
http://lists.rtems.org/mailman/listinfo/bugs

Reply via email to