From b991962a2e080e53852e3da12be43325fcd4b3ef Mon Sep 17 00:00:00 2001 From: Wentong Wu Date: Thu, 4 Apr 2019 17:50:30 +0800 Subject: [PATCH] tests: adjust stack size for qemu_x86 and mps2_an385's coverage test for SDK 0.10.0, it consumes more stack size when coverage enabled on qemu_x86 and mps2_an385 platform, adjust stack size for most of the test cases, otherwise there will be stack overflow. Fixes: #14500. Signed-off-by: Wentong Wu --- boards/arm/mps2_an385/mps2_an385_defconfig | 11 +++++++---- kernel/Kconfig | 2 +- subsys/testsuite/Kconfig | 2 +- tests/kernel/critical/src/main.c | 3 ++- tests/kernel/fifo/fifo_timeout/src/main.c | 2 +- tests/kernel/fifo/fifo_usage/src/main.c | 2 +- tests/kernel/lifo/lifo_usage/src/main.c | 4 ++-- tests/kernel/obj_tracing/src/main.c | 2 +- tests/kernel/pipe/pipe_api/src/test_pipe_contexts.c | 2 +- tests/kernel/poll/src/test_poll.c | 10 ++++++---- tests/kernel/sched/preempt/prj.conf | 1 - tests/kernel/sched/preempt/src/main.c | 6 +----- .../kernel/stack/stack_api/src/test_stack_contexts.c | 2 +- tests/kernel/stack/stack_usage/src/main.c | 2 +- tests/kernel/threads/thread_apis/prj.conf | 1 - tests/kernel/threads/thread_apis/src/main.c | 2 +- .../threads/thread_apis/src/test_essential_thread.c | 2 +- .../threads/thread_apis/src/test_kthread_for_each.c | 3 ++- .../thread_apis/src/test_threads_cancel_abort.c | 3 ++- .../thread_apis/src/test_threads_set_priority.c | 3 ++- .../threads/thread_apis/src/test_threads_spawn.c | 2 +- .../thread_apis/src/test_threads_suspend_resume.c | 3 ++- tests/kernel/workq/work_queue/src/main.c | 2 +- 23 files changed, 38 insertions(+), 34 deletions(-) diff --git a/boards/arm/mps2_an385/mps2_an385_defconfig b/boards/arm/mps2_an385/mps2_an385_defconfig index 62e35f594db..b7fc0304d20 100644 --- a/boards/arm/mps2_an385/mps2_an385_defconfig +++ b/boards/arm/mps2_an385/mps2_an385_defconfig @@ -32,7 +32,10 @@ CONFIG_I2C=y #Enable MPU CONFIG_ARCH_HAS_USERSPACE=y CONFIG_ARM_MPU=y -CONFIG_MAIN_STACK_SIZE=2048 -CONFIG_IDLE_STACK_SIZE=2048 -CONFIG_PRIVILEGED_STACK_SIZE=1024 -CONFIG_TEST_EXTRA_STACKSIZE=1024 \ No newline at end of file +CONFIG_MAIN_STACK_SIZE=8192 +CONFIG_IDLE_STACK_SIZE=8192 +CONFIG_PRIVILEGED_STACK_SIZE=8192 +CONFIG_TEST_EXTRA_STACKSIZE=4096 +CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=2048 +CONFIG_OFFLOAD_WORKQUEUE_STACK_SIZE=4096 +CONFIG_ZTEST_STACKSIZE=4096 diff --git a/kernel/Kconfig b/kernel/Kconfig index f7f04d337b3..aa1f4bc3bf3 100644 --- a/kernel/Kconfig +++ b/kernel/Kconfig @@ -159,7 +159,7 @@ config MAIN_STACK_SIZE config IDLE_STACK_SIZE int "Size of stack for idle thread" - default 512 if COVERAGE_GCOV + default 2048 if COVERAGE_GCOV default 1024 if XTENSA default 512 if RISCV32 default 320 if ARC || (ARM && CPU_HAS_FPU) diff --git a/subsys/testsuite/Kconfig b/subsys/testsuite/Kconfig index 707151fe00c..024bcffb9fd 100644 --- a/subsys/testsuite/Kconfig +++ b/subsys/testsuite/Kconfig @@ -23,7 +23,7 @@ config TEST_SHELL config TEST_EXTRA_STACKSIZE int "Test function extra thread stack size" - default 1024 if COVERAGE_GCOV + default 2048 if COVERAGE_GCOV default 768 if XTENSA default 0 help diff --git a/tests/kernel/critical/src/main.c b/tests/kernel/critical/src/main.c index 17244dcd5bc..372f931fa1a 100644 --- a/tests/kernel/critical/src/main.c +++ b/tests/kernel/critical/src/main.c @@ -42,7 +42,8 @@ static struct k_work_q offload_work_q; static K_THREAD_STACK_DEFINE(offload_work_q_stack, CONFIG_OFFLOAD_WORKQUEUE_STACK_SIZE); -#define STACK_SIZE 1024 +#define STACK_SIZE (1024 + CONFIG_TEST_EXTRA_STACKSIZE) + static K_THREAD_STACK_DEFINE(stack1, STACK_SIZE); static K_THREAD_STACK_DEFINE(stack2, STACK_SIZE); diff --git a/tests/kernel/fifo/fifo_timeout/src/main.c b/tests/kernel/fifo/fifo_timeout/src/main.c index 136bafe53bb..cf286639f90 100644 --- a/tests/kernel/fifo/fifo_timeout/src/main.c +++ b/tests/kernel/fifo/fifo_timeout/src/main.c @@ -76,7 +76,7 @@ struct timeout_order_data timeout_order_data_mult_fifo[] = { }; #define TIMEOUT_ORDER_NUM_THREADS ARRAY_SIZE(timeout_order_data_mult_fifo) -#define TSTACK_SIZE 1024 +#define TSTACK_SIZE (1024 + CONFIG_TEST_EXTRA_STACKSIZE) #define FIFO_THREAD_PRIO -5 static K_THREAD_STACK_ARRAY_DEFINE(ttstack, diff --git a/tests/kernel/fifo/fifo_usage/src/main.c b/tests/kernel/fifo/fifo_usage/src/main.c index 821f07bd800..b1056f23b42 100644 --- a/tests/kernel/fifo/fifo_usage/src/main.c +++ b/tests/kernel/fifo/fifo_usage/src/main.c @@ -35,7 +35,7 @@ #include #include -#define STACK_SIZE 1024 +#define STACK_SIZE (1024 + CONFIG_TEST_EXTRA_STACKSIZE) #define LIST_LEN 4 struct fdata_t { diff --git a/tests/kernel/lifo/lifo_usage/src/main.c b/tests/kernel/lifo/lifo_usage/src/main.c index 10fe85f8a2e..99aa1792e1c 100644 --- a/tests/kernel/lifo/lifo_usage/src/main.c +++ b/tests/kernel/lifo/lifo_usage/src/main.c @@ -8,7 +8,7 @@ #include "lifo_usage.h" #include -#define STACK_SIZE 1024 +#define STACK_SIZE (1024 + CONFIG_TEST_EXTRA_STACKSIZE) #define LIST_LEN 2 struct k_lifo lifo, plifo; @@ -64,7 +64,7 @@ struct timeout_order_data timeout_order_data_mult_lifo[] = { #define NUM_SCRATCH_LIFO_PACKETS 20 #define TIMEOUT_ORDER_NUM_THREADS ARRAY_SIZE(timeout_order_data_mult_lifo) -#define TSTACK_SIZE 1024 +#define TSTACK_SIZE (1024 + CONFIG_TEST_EXTRA_STACKSIZE) #define LIFO_THREAD_PRIO -5 struct scratch_lifo_packet scratch_lifo_packets[NUM_SCRATCH_LIFO_PACKETS]; diff --git a/tests/kernel/obj_tracing/src/main.c b/tests/kernel/obj_tracing/src/main.c index 0762dbe4c78..9311371f721 100644 --- a/tests/kernel/obj_tracing/src/main.c +++ b/tests/kernel/obj_tracing/src/main.c @@ -10,7 +10,7 @@ extern void test_obj_tracing(void); -#define STSIZE 1024 +#define STSIZE (1024 + CONFIG_TEST_EXTRA_STACKSIZE) #define N_PHILOSOPHERS 5 #define TOTAL_TEST_NUMBER 2 diff --git a/tests/kernel/pipe/pipe_api/src/test_pipe_contexts.c b/tests/kernel/pipe/pipe_api/src/test_pipe_contexts.c index db2ead13c38..0d1cb0f5bd6 100644 --- a/tests/kernel/pipe/pipe_api/src/test_pipe_contexts.c +++ b/tests/kernel/pipe/pipe_api/src/test_pipe_contexts.c @@ -6,7 +6,7 @@ #include -#define STACK_SIZE 1024 +#define STACK_SIZE (1024 + CONFIG_TEST_EXTRA_STACKSIZE) #define PIPE_LEN 16 #define BYTES_TO_WRITE 4 #define BYTES_TO_READ BYTES_TO_WRITE diff --git a/tests/kernel/poll/src/test_poll.c b/tests/kernel/poll/src/test_poll.c index 8d2e10421a7..de59470a115 100644 --- a/tests/kernel/poll/src/test_poll.c +++ b/tests/kernel/poll/src/test_poll.c @@ -114,7 +114,8 @@ static struct k_poll_signal wait_signal = struct fifo_msg wait_msg = { NULL, FIFO_MSG_VALUE }; static struct k_thread poll_wait_helper_thread; -static K_THREAD_STACK_DEFINE(poll_wait_helper_stack, KB(1)); +static K_THREAD_STACK_DEFINE(poll_wait_helper_stack, + KB(1) + CONFIG_TEST_EXTRA_STACKSIZE); #define TAG_0 10 #define TAG_1 11 @@ -429,7 +430,8 @@ void test_poll_cancel_main_high_prio(void) static K_SEM_DEFINE(multi_sem, 0, 1); static struct k_thread multi_thread_lowprio; -static K_THREAD_STACK_DEFINE(multi_stack_lowprio, KB(1)); +static K_THREAD_STACK_DEFINE(multi_stack_lowprio, + KB(1) + CONFIG_TEST_EXTRA_STACKSIZE); static void multi_lowprio(void *p1, void *p2, void *p3) { @@ -449,7 +451,7 @@ static void multi_lowprio(void *p1, void *p2, void *p3) static K_SEM_DEFINE(multi_reply, 0, 1); static struct k_thread multi_thread; -static K_THREAD_STACK_DEFINE(multi_stack, KB(1)); +static K_THREAD_STACK_DEFINE(multi_stack, KB(1) + CONFIG_TEST_EXTRA_STACKSIZE); static void multi(void *p1, void *p2, void *p3) { @@ -526,7 +528,7 @@ void test_poll_multi(void) } static struct k_thread signal_thread; -static K_THREAD_STACK_DEFINE(signal_stack, KB(1)); +static K_THREAD_STACK_DEFINE(signal_stack, KB(1) + CONFIG_TEST_EXTRA_STACKSIZE); static struct k_poll_signal signal; static void threadstate(void *p1, void *p2, void *p3) diff --git a/tests/kernel/sched/preempt/prj.conf b/tests/kernel/sched/preempt/prj.conf index 2272f88f705..7a3e5084084 100644 --- a/tests/kernel/sched/preempt/prj.conf +++ b/tests/kernel/sched/preempt/prj.conf @@ -2,4 +2,3 @@ CONFIG_ZTEST=y CONFIG_MP_NUM_CPUS=1 CONFIG_NUM_METAIRQ_PRIORITIES=1 CONFIG_IRQ_OFFLOAD=y -CONFIG_TEST_EXTRA_STACKSIZE=256 diff --git a/tests/kernel/sched/preempt/src/main.c b/tests/kernel/sched/preempt/src/main.c index f67416509ac..731b8fad543 100644 --- a/tests/kernel/sched/preempt/src/main.c +++ b/tests/kernel/sched/preempt/src/main.c @@ -48,11 +48,7 @@ const enum { METAIRQ, COOP, PREEMPTIBLE } worker_priorities[] = { #define NUM_THREADS ARRAY_SIZE(worker_priorities) -#ifdef CONFIG_COVERAGE -#define STACK_SIZE (512 + CONFIG_TEST_EXTRA_STACKSIZE) -#else -#define STACK_SIZE (384 + CONFIG_TEST_EXTRA_STACKSIZE) -#endif +#define STACK_SIZE (640 + CONFIG_TEST_EXTRA_STACKSIZE) k_tid_t last_thread; diff --git a/tests/kernel/stack/stack_api/src/test_stack_contexts.c b/tests/kernel/stack/stack_api/src/test_stack_contexts.c index f1007557ddc..2727be9a91d 100644 --- a/tests/kernel/stack/stack_api/src/test_stack_contexts.c +++ b/tests/kernel/stack/stack_api/src/test_stack_contexts.c @@ -6,7 +6,7 @@ #include #include -#define STACK_SIZE 512 +#define STACK_SIZE (512 + CONFIG_TEST_EXTRA_STACKSIZE) #define STACK_LEN 4 /**TESTPOINT: init via K_STACK_DEFINE*/ diff --git a/tests/kernel/stack/stack_usage/src/main.c b/tests/kernel/stack/stack_usage/src/main.c index 57914e25ae1..0b6c1be51de 100644 --- a/tests/kernel/stack/stack_usage/src/main.c +++ b/tests/kernel/stack/stack_usage/src/main.c @@ -35,7 +35,7 @@ #include #include -#define TSTACK_SIZE 512 +#define TSTACK_SIZE (512 + CONFIG_TEST_EXTRA_STACKSIZE) #define STACK_LEN 4 /* stack objects used in this test */ diff --git a/tests/kernel/threads/thread_apis/prj.conf b/tests/kernel/threads/thread_apis/prj.conf index dcdf48708a7..b3b563fa271 100644 --- a/tests/kernel/threads/thread_apis/prj.conf +++ b/tests/kernel/threads/thread_apis/prj.conf @@ -4,6 +4,5 @@ CONFIG_THREAD_CUSTOM_DATA=y CONFIG_THREAD_NAME=y CONFIG_THREAD_STACK_INFO=y CONFIG_HEAP_MEM_POOL_SIZE=256 -CONFIG_TEST_EXTRA_STACKSIZE=256 CONFIG_SCHED_CPU_MASK=y CONFIG_SMP=n diff --git a/tests/kernel/threads/thread_apis/src/main.c b/tests/kernel/threads/thread_apis/src/main.c index 6314fe9a890..e89b78c25b9 100644 --- a/tests/kernel/threads/thread_apis/src/main.c +++ b/tests/kernel/threads/thread_apis/src/main.c @@ -37,7 +37,7 @@ extern void test_k_thread_foreach(void); extern void test_threads_cpu_mask(void); struct k_thread tdata; -#define STACK_SIZE (256 + CONFIG_TEST_EXTRA_STACKSIZE) +#define STACK_SIZE (512 + CONFIG_TEST_EXTRA_STACKSIZE) K_THREAD_STACK_DEFINE(tstack, STACK_SIZE); size_t tstack_size = K_THREAD_STACK_SIZEOF(tstack); diff --git a/tests/kernel/threads/thread_apis/src/test_essential_thread.c b/tests/kernel/threads/thread_apis/src/test_essential_thread.c index d5f1e795e2a..3c22251865e 100644 --- a/tests/kernel/threads/thread_apis/src/test_essential_thread.c +++ b/tests/kernel/threads/thread_apis/src/test_essential_thread.c @@ -10,7 +10,7 @@ struct k_thread kthread_thread; -#define STACKSIZE 1024 +#define STACKSIZE (1024 + CONFIG_TEST_EXTRA_STACKSIZE) K_THREAD_STACK_DEFINE(kthread_stack, STACKSIZE); K_SEM_DEFINE(sync_sem, 0, 1); diff --git a/tests/kernel/threads/thread_apis/src/test_kthread_for_each.c b/tests/kernel/threads/thread_apis/src/test_kthread_for_each.c index c74dd1d467d..62d97af84e0 100644 --- a/tests/kernel/threads/thread_apis/src/test_kthread_for_each.c +++ b/tests/kernel/threads/thread_apis/src/test_kthread_for_each.c @@ -11,7 +11,8 @@ #define SLEEP_MS 100 #define TEST_STRING "TEST" -#define STACKSIZE (256 + CONFIG_TEST_EXTRA_STACKSIZE) +#define STACKSIZE (512 + CONFIG_TEST_EXTRA_STACKSIZE) + K_THREAD_STACK_EXTERN(tstack); extern struct k_thread tdata; diff --git a/tests/kernel/threads/thread_apis/src/test_threads_cancel_abort.c b/tests/kernel/threads/thread_apis/src/test_threads_cancel_abort.c index e3344c1d4dc..ff20a02b060 100644 --- a/tests/kernel/threads/thread_apis/src/test_threads_cancel_abort.c +++ b/tests/kernel/threads/thread_apis/src/test_threads_cancel_abort.c @@ -6,7 +6,8 @@ #include -#define STACK_SIZE (256 + CONFIG_TEST_EXTRA_STACKSIZE) +#define STACK_SIZE (512 + CONFIG_TEST_EXTRA_STACKSIZE) + K_THREAD_STACK_EXTERN(tstack); extern struct k_thread tdata; static ZTEST_BMEM int execute_flag; diff --git a/tests/kernel/threads/thread_apis/src/test_threads_set_priority.c b/tests/kernel/threads/thread_apis/src/test_threads_set_priority.c index 5ca7e75ff7e..9bd08d39d0f 100644 --- a/tests/kernel/threads/thread_apis/src/test_threads_set_priority.c +++ b/tests/kernel/threads/thread_apis/src/test_threads_set_priority.c @@ -6,7 +6,8 @@ #include -#define STACK_SIZE (384 + CONFIG_TEST_EXTRA_STACKSIZE) +#define STACK_SIZE (640 + CONFIG_TEST_EXTRA_STACKSIZE) + K_THREAD_STACK_EXTERN(tstack); extern struct k_thread tdata; static int thread2_data; diff --git a/tests/kernel/threads/thread_apis/src/test_threads_spawn.c b/tests/kernel/threads/thread_apis/src/test_threads_spawn.c index f91b7c1e0a4..204b976e3d8 100644 --- a/tests/kernel/threads/thread_apis/src/test_threads_spawn.c +++ b/tests/kernel/threads/thread_apis/src/test_threads_spawn.c @@ -7,7 +7,7 @@ #include -#define STACK_SIZE (256 + CONFIG_TEST_EXTRA_STACKSIZE) +#define STACK_SIZE (512 + CONFIG_TEST_EXTRA_STACKSIZE) K_THREAD_STACK_EXTERN(tstack); extern struct k_thread tdata; diff --git a/tests/kernel/threads/thread_apis/src/test_threads_suspend_resume.c b/tests/kernel/threads/thread_apis/src/test_threads_suspend_resume.c index b2cbe724905..157704d0c9e 100644 --- a/tests/kernel/threads/thread_apis/src/test_threads_suspend_resume.c +++ b/tests/kernel/threads/thread_apis/src/test_threads_suspend_resume.c @@ -6,7 +6,8 @@ #include -#define STACK_SIZE (256 + CONFIG_TEST_EXTRA_STACKSIZE) +#define STACK_SIZE (512 + CONFIG_TEST_EXTRA_STACKSIZE) + K_THREAD_STACK_EXTERN(tstack); extern struct k_thread tdata; static int last_prio; diff --git a/tests/kernel/workq/work_queue/src/main.c b/tests/kernel/workq/work_queue/src/main.c index b355a29e205..d96c8227bc1 100644 --- a/tests/kernel/workq/work_queue/src/main.c +++ b/tests/kernel/workq/work_queue/src/main.c @@ -25,7 +25,7 @@ */ #define SUBMIT_WAIT 50 -#define STACK_SIZE 1024 +#define STACK_SIZE (1024 + CONFIG_TEST_EXTRA_STACKSIZE) struct test_item { int key;