diff options
Diffstat (limited to 'vm_core.h')
-rw-r--r-- | vm_core.h | 27 |
1 files changed, 23 insertions, 4 deletions
@@ -393,8 +393,30 @@ typedef struct rb_vm_struct { struct RArray at_exit; VALUE *defined_strings; + + /* params */ + struct { /* size in byte */ + size_t thread_vm_stack_size; + size_t thread_machine_stack_size; + size_t fiber_vm_stack_size; + size_t fiber_machine_stack_size; + } default_params; } rb_vm_t; +/* default values */ + +#define RUBY_VM_SIZE_ALIGN 4096 + +#define RUBY_VM_THREAD_VM_STACK_SIZE ( 32 * 1024 * sizeof(VALUE)) /* 128 KB or 256 KB */ +#define RUBY_VM_THREAD_VM_STACK_SIZE_MIN ( 2 * 1024 * sizeof(VALUE)) /* 8 KB or 16 KB */ +#define RUBY_VM_THREAD_MACHINE_STACK_SIZE ( 128 * 1024 * sizeof(VALUE)) /* 512 KB or 1024 KB */ +#define RUBY_VM_THREAD_MACHINE_STACK_SIZE_MIN ( 16 * 1024 * sizeof(VALUE)) /* 64 KB or 128 KB */ + +#define RUBY_VM_FIBER_VM_STACK_SIZE ( 16 * 1024 * sizeof(VALUE)) /* 64 KB or 128 KB */ +#define RUBY_VM_FIBER_VM_STACK_SIZE_MIN ( 2 * 1024 * sizeof(VALUE)) /* 8 KB or 16 KB */ +#define RUBY_VM_FIBER_MACHINE_STACK_SIZE ( 64 * 1024 * sizeof(VALUE)) /* 256 KB or 512 KB */ +#define RUBY_VM_FIBER_MACHINE_STACK_SIZE_MIN ( 16 * 1024 * sizeof(VALUE)) /* 64 KB or 128 KB */ + #ifndef VM_DEBUG_BP_CHECK #define VM_DEBUG_BP_CHECK 1 #endif @@ -469,7 +491,7 @@ typedef struct rb_thread_struct { /* execution information */ VALUE *stack; /* must free, must mark */ - unsigned long stack_size; + size_t stack_size; /* size in word (byte size / sizeof(VALUE)) */ rb_control_frame_t *cfp; int safe_level; int raised_flag; @@ -620,9 +642,6 @@ RUBY_EXTERN VALUE rb_mRubyVMFrozenCore; #pragma GCC visibility pop #endif -/* each thread has this size stack : 128KB */ -#define RUBY_VM_THREAD_STACK_SIZE (128 * 1024) - #define GetProcPtr(obj, ptr) \ GetCoreDataFromValue((obj), rb_proc_t, (ptr)) |