arch/x86: set default stack sizes
Using the arch Kconfig here, instead of kernel/Kconfig. Intel64 with the SysV ABI requires some pretty big stacks. These 4K-8K defaults are arguably a bit small, but the Zephyr defaults are REALLY too small. Signed-off-by: Charles E. Youse <charles.youse@intel.com>
This commit is contained in:
parent
4ddaa59a89
commit
0e0199387a
2 changed files with 22 additions and 6 deletions
|
@ -5,4 +5,22 @@
|
||||||
|
|
||||||
if X86_LONGMODE
|
if X86_LONGMODE
|
||||||
|
|
||||||
|
config MAIN_STACK_SIZE
|
||||||
|
default 8192
|
||||||
|
|
||||||
|
config IDLE_STACK_SIZE
|
||||||
|
default 4096
|
||||||
|
|
||||||
|
config ISR_STACK_SIZE
|
||||||
|
default 4096
|
||||||
|
|
||||||
|
config TEST_EXTRA_STACKSIZE
|
||||||
|
default 4096
|
||||||
|
|
||||||
|
config SYSTEM_WORKQUEUE_STACK_SIZE
|
||||||
|
default 8192
|
||||||
|
|
||||||
|
config OFFLOAD_WORKQUEUE_STACK_SIZE
|
||||||
|
default 8192
|
||||||
|
|
||||||
endif # X86_LONGMODE
|
endif # X86_LONGMODE
|
||||||
|
|
|
@ -10,8 +10,6 @@
|
||||||
#include <offsets_short.h>
|
#include <offsets_short.h>
|
||||||
#include <drivers/interrupt_controller/loapic.h>
|
#include <drivers/interrupt_controller/loapic.h>
|
||||||
|
|
||||||
#define IST1_SIZE 4096 /* must be a multiple of 16 */
|
|
||||||
|
|
||||||
.section .locore,"ax"
|
.section .locore,"ax"
|
||||||
.code32
|
.code32
|
||||||
|
|
||||||
|
@ -52,7 +50,7 @@ __start:
|
||||||
movw %ax, %fs
|
movw %ax, %fs
|
||||||
movw %ax, %gs
|
movw %ax, %gs
|
||||||
|
|
||||||
movl $(ist1 + IST1_SIZE), %esp
|
movl $(ist1 + CONFIG_ISR_STACK_SIZE), %esp
|
||||||
|
|
||||||
/* transition to long mode, by the book. */
|
/* transition to long mode, by the book. */
|
||||||
|
|
||||||
|
@ -158,7 +156,7 @@ __swap:
|
||||||
movq %r14, _thread_offset_to_r14(%rsi)
|
movq %r14, _thread_offset_to_r14(%rsi)
|
||||||
movq %r15, _thread_offset_to_r15(%rsi)
|
movq %r15, _thread_offset_to_r15(%rsi)
|
||||||
|
|
||||||
movq $(ist1 + IST1_SIZE), %rsp
|
movq $(ist1 + CONFIG_ISR_STACK_SIZE), %rsp
|
||||||
|
|
||||||
/* fall through to __resume */
|
/* fall through to __resume */
|
||||||
|
|
||||||
|
@ -237,7 +235,7 @@ tss: .long 0
|
||||||
.long 0, 0 /* RSP1 */
|
.long 0, 0 /* RSP1 */
|
||||||
.long 0, 0 /* RSP2 */
|
.long 0, 0 /* RSP2 */
|
||||||
.long 0, 0
|
.long 0, 0
|
||||||
.long (ist1 + IST1_SIZE), 0 /* IST1 */
|
.long (ist1 + CONFIG_ISR_STACK_SIZE), 0 /* IST1 */
|
||||||
.long 0, 0 /* IST2 */
|
.long 0, 0 /* IST2 */
|
||||||
.long 0, 0 /* IST3 */
|
.long 0, 0 /* IST3 */
|
||||||
.long 0, 0 /* IST4 */
|
.long 0, 0 /* IST4 */
|
||||||
|
@ -479,5 +477,5 @@ pdp: .long 0x00000183 /* 0x183 = G, 1GB, R/W, P */
|
||||||
|
|
||||||
.align 16
|
.align 16
|
||||||
ist1:
|
ist1:
|
||||||
.fill IST1_SIZE, 1, 0xFF
|
.fill CONFIG_ISR_STACK_SIZE, 1, 0xFF
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue