]> git.lizzy.rs Git - rust.git/commitdiff
rt: Get rid of the valgrind guard bytes at the end of the stack
authorBrian Anderson <banderson@mozilla.com>
Sun, 18 Dec 2011 00:46:50 +0000 (16:46 -0800)
committerBrian Anderson <banderson@mozilla.com>
Sun, 18 Dec 2011 00:46:50 +0000 (16:46 -0800)
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

index 7434a4673cd8584040e2d88800fd98b4b934bc91..0f5a6904ff17dba028c61b3599a0af40908ecd08 100644 (file)
 
 #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);
 }