80e82e7205
As luck would have it, the TSS for the main IA task has all the information we need, populate an exception stack frame with it. The double-fault handler just stashes data and makes the main hardware thread runnable again, and processing of the exception continues from there. We check the first byte before the faulting ESP value to see if the stack pointer had run up to a non-present page, a sign that this is a stack overflow and not a double fault for some other reason. Stack overflows in kernel mode are now recoverable for non- essential threads, with the caveat that we hope we weren't in a critical section updating kernel data structures when it happened. Signed-off-by: Andrew Boie <andrew.p.boie@intel.com> |
||
---|---|---|
.. | ||
src | ||
Makefile | ||
README | ||
prj-arc.conf | ||
prj-x86-mmu.conf | ||
prj.conf | ||
testcase.yaml |
README
This test case verifies that kernel fatal error handling works correctly. If a thread causes a CPU exception, and it is not in an ISR or "essential" thread, the thread gets aborted and the rest of the system executes normally.