zephyr/tests/kernel
Andrew Boie 80e82e7205 x86: stack overflow improvements
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>
2017-08-03 11:46:26 -04:00
..
alert/alert_api tests: Remove camel case and fix coding style 2017-06-29 07:00:50 -04:00
arm_irq_vector_table tests: remove testcase.ini files 2017-06-21 20:56:53 -04:00
arm_runtime_nmi tests: remove testcase.ini files 2017-06-21 20:56:53 -04:00
bitfield tests: remove testcase.ini files 2017-06-21 20:56:53 -04:00
common tests: remove testcase.ini files 2017-06-21 20:56:53 -04:00
context tests: remove testcase.ini files 2017-06-21 20:56:53 -04:00
critical build: remove unused Kconfig variables 2017-08-03 07:19:29 -05:00
errno tests: errno: convert test case to use ztest 2017-08-01 08:46:48 -04:00
fatal x86: stack overflow improvements 2017-08-03 11:46:26 -04:00
fifo/fifo_api tests: remove testcase.ini files 2017-06-21 20:56:53 -04:00
fp_sharing tests: remove testcase.ini files 2017-06-21 20:56:53 -04:00
gen_isr_table tests: remove testcase.ini files 2017-06-21 20:56:53 -04:00
irq_offload tests: irq_offload: Convert test case to use ztest 2017-08-01 08:46:48 -04:00
libs tests: remove testcase.ini files 2017-06-21 20:56:53 -04:00
lifo/lifo_api tests: remove testcase.ini files 2017-06-21 20:56:53 -04:00
mbox/mbox_api tests: remove testcase.ini files 2017-06-21 20:56:53 -04:00
mem_heap/mheap_api_concept tests: remove testcase.ini files 2017-06-21 20:56:53 -04:00
mem_pool tests: remove testcase.ini files 2017-06-21 20:56:53 -04:00
mem_slab tests: Remove camel case and fix coding style 2017-06-29 07:00:50 -04:00
msgq/msgq_api tests: Remove camel case and fix coding style 2017-06-29 07:00:50 -04:00
multilib tests: remove testcase.ini files 2017-06-21 20:56:53 -04:00
mutex tests: Remove camel case and fix coding style 2017-06-29 07:00:50 -04:00
obj_tracing drivers, net: Clean up semaphore initialization 2017-07-27 15:23:07 -04:00
pending tests: replace filters in testcase files 2017-06-28 09:51:40 -05:00
pipe/pipe_api tests: remove testcase.ini files 2017-06-21 20:56:53 -04:00
poll kernel: make K_.*_INITIALIZER private to kernel 2017-07-10 11:44:56 -07:00
profiling/profiling_api tests: remove testcase.ini files 2017-06-21 20:56:53 -04:00
protection tests: protection: don't do exec tests on x86 2017-07-10 11:44:56 -07:00
queue tests: remove testcase.ini files 2017-06-21 20:56:53 -04:00
semaphore/sema_api tests: Remove camel case and fix coding style 2017-06-29 07:00:50 -04:00
sleep tests: remove testcase.ini files 2017-06-21 20:56:53 -04:00
sprintf tests: kernel: sprintf: Fix build warning. 2017-07-19 11:16:52 -04:00
stack/stack_api tests: remove testcase.ini files 2017-06-21 20:56:53 -04:00
stackprot tests: remove testcase.ini files 2017-06-21 20:56:53 -04:00
static_idt tests: remove testcase.ini files 2017-06-21 20:56:53 -04:00
systhreads tests: remove testcase.ini files 2017-06-21 20:56:53 -04:00
test_build tests: remove testcase.ini files 2017-06-21 20:56:53 -04:00
threads tests: remove testcase.ini files 2017-06-21 20:56:53 -04:00
tickless tests: tickless: fix building of test 2017-06-29 13:14:18 -05:00
timer kernel: make K_.*_INITIALIZER private to kernel 2017-07-10 11:44:56 -07:00
workq tests: remove testcase.ini files 2017-06-21 20:56:53 -04:00
xip tests: remove testcase.ini files 2017-06-21 20:56:53 -04:00