From fe683dfb80498fa3336c6f5f96b6b82917ac08b3 Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Sat, 17 Dec 2011 16:46:50 -0800 Subject: rt: Get rid of the valgrind guard bytes at the end of the stack Preventing us from writing beyond our allocations is _what valgrind does_, so telling valgrind not to let us write to the end of the stack isn't buying anything. --- src/rt/rust_task.cpp | 19 ++----------------- 1 file changed, 2 insertions(+), 17 deletions(-) (limited to 'src/rt/rust_task.cpp') diff --git a/src/rt/rust_task.cpp b/src/rt/rust_task.cpp index 7434a4673cd..0f5a6904ff1 100644 --- a/src/rt/rust_task.cpp +++ b/src/rt/rust_task.cpp @@ -15,22 +15,15 @@ #include "globals.h" -// Each stack gets some guard bytes that valgrind will verify we don't touch -#ifndef NVALGRIND -#define STACK_NOACCESS_SIZE 16 -#else -#define STACK_NOACCESS_SIZE 0 -#endif - // The amount of extra space at the end of each stack segment, available // to the rt, compiler and dynamic linker for running small functions // FIXME: We want this to be 128 but need to slim the red zone calls down #ifdef __i386__ -#define RED_ZONE_SIZE (65536 + STACK_NOACCESS_SIZE) +#define RED_ZONE_SIZE 65536 #endif #ifdef __x86_64__ -#define RED_ZONE_SIZE (65536 + STACK_NOACCESS_SIZE) +#define RED_ZONE_SIZE 65536 #endif // Stack size @@ -80,19 +73,11 @@ config_valgrind_stack(stk_seg *stk) { // caused valgrind to consider the whole thing inaccessible. size_t sz = stk->end - (uintptr_t)&stk->data[0]; VALGRIND_MAKE_MEM_UNDEFINED(stk->data, sz); - - // Establish some guard bytes so valgrind will tell - // us if we run off the end of the stack - VALGRIND_MAKE_MEM_NOACCESS(stk->data, STACK_NOACCESS_SIZE); #endif } static void unconfig_valgrind_stack(stk_seg *stk) { -#ifndef NVALGRIND - // Make the guard bytes accessible again, but undefined - VALGRIND_MAKE_MEM_UNDEFINED(stk->data, STACK_NOACCESS_SIZE); -#endif VALGRIND_STACK_DEREGISTER(stk->valgrind_id); } -- cgit 1.4.1-3-g733a5