diff options
author | Urabe, Shyouhei <shyouhei@ruby-lang.org> | 2019-04-24 18:22:33 +0900 |
---|---|---|
committer | Urabe, Shyouhei <shyouhei@ruby-lang.org> | 2019-04-26 15:59:40 +0900 |
commit | fa09acafde3b7dbb23edadc6eddcce27f7395880 (patch) | |
tree | 556da2019bd99f4fb0ebef2f9da56296ce129d62 /vm_core.h | |
parent | 1f4204a762b2ddcc2f235b1a2b6a10071ef90d3b (diff) |
extend machine stacks when sanitizers are there
It seems sanitizers require extra amount of machine stacks. Without
extending them the process tends to stack overflow.
Diffstat (limited to 'vm_core.h')
-rw-r--r-- | vm_core.h | 12 |
1 files changed, 12 insertions, 0 deletions
@@ -698,6 +698,18 @@ typedef struct rb_vm_struct { #define RUBY_VM_FIBER_MACHINE_STACK_SIZE_MIN ( 16 * 1024 * sizeof(VALUE)) /* 64 KB or 128 KB */ #endif +#if __has_feature(memory_sanitizer) || __has_feature(address_sanitizer) +/* It seems sanitizers consume A LOT of machine stacks */ +#undef RUBY_VM_THREAD_MACHINE_STACK_SIZE +#define RUBY_VM_THREAD_MACHINE_STACK_SIZE (1024 * 1024 * sizeof(VALUE)) +#undef RUBY_VM_THREAD_MACHINE_STACK_SIZE_MIN +#define RUBY_VM_THREAD_MACHINE_STACK_SIZE_MIN ( 512 * 1024 * sizeof(VALUE)) +#undef RUBY_VM_FIBER_MACHINE_STACK_SIZE +#define RUBY_VM_FIBER_MACHINE_STACK_SIZE ( 256 * 1024 * sizeof(VALUE)) +#undef RUBY_VM_FIBER_MACHINE_STACK_SIZE_MIN +#define RUBY_VM_FIBER_MACHINE_STACK_SIZE_MIN ( 128 * 1024 * sizeof(VALUE)) +#endif + /* optimize insn */ #define INTEGER_REDEFINED_OP_FLAG (1 << 0) #define FLOAT_REDEFINED_OP_FLAG (1 << 1) |