summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--config/user-nptl_guard_within_stack.m456
-rw-r--r--config/user.m41
-rw-r--r--include/sys/zfs_context.h6
-rw-r--r--lib/libzpool/kernel.c3
4 files changed, 1 insertions, 65 deletions
diff --git a/config/user-nptl_guard_within_stack.m4 b/config/user-nptl_guard_within_stack.m4
deleted file mode 100644
index 421eb1c05..000000000
--- a/config/user-nptl_guard_within_stack.m4
+++ /dev/null
@@ -1,56 +0,0 @@
-dnl #
-dnl # Check if the glibc NPTL threading implementation includes the guard area
-dnl # within the stack size allocation, rather than allocating extra space at
-dnl # the end of the stack, as POSIX.1 requires.
-dnl #
-AC_DEFUN([ZFS_AC_CONFIG_USER_STACK_GUARD], [
-
- AC_MSG_CHECKING([whether pthread stack includes guard])
-
- saved_CFLAGS="$CFLAGS"
- CFLAGS="-fstack-check"
- saved_LDFLAGS="$LDFLAGS"
- LDFLAGS="-lpthread"
-
- AC_RUN_IFELSE([AC_LANG_PROGRAM(
- [
- #include <pthread.h>
- #include <sys/resource.h>
- #include <unistd.h>
- #include <bits/local_lim.h>
-
- #define PAGESIZE (sysconf(_SC_PAGESIZE))
- #define STACK_SIZE 8192
- #define BUFSIZE 4096
-
- void * func(void *arg)
- {
- char buf[[BUFSIZE]];
- }
- ],
- [
- pthread_t tid;
- pthread_attr_t attr;
- struct rlimit l;
-
- l.rlim_cur = 0;
- l.rlim_max = 0;
- setrlimit(RLIMIT_CORE, &l);
- pthread_attr_init(&attr);
- pthread_attr_setstacksize(&attr, PTHREAD_STACK_MIN + STACK_SIZE);
- pthread_attr_setguardsize(&attr, PAGESIZE);
- pthread_create(&tid, &attr, func, NULL);
- pthread_join(tid, NULL);
- ])],
- [
- AC_MSG_RESULT([no])
- ],
- [
- AC_DEFINE([NPTL_GUARD_WITHIN_STACK], 1,
- [Define to 1 if NPTL threading implementation includes
- guard area in stack allocation])
- AC_MSG_RESULT([yes])
- ])
- CFLAGS="$saved_CFLAGS"
- LDFLAGS="$saved_LDFLAGS"
-])
diff --git a/config/user.m4 b/config/user.m4
index 4fcef3d5b..109ebd5f9 100644
--- a/config/user.m4
+++ b/config/user.m4
@@ -10,5 +10,4 @@ AC_DEFUN([ZFS_AC_CONFIG_USER], [
ZFS_AC_CONFIG_USER_LIBBLKID
ZFS_AC_CONFIG_USER_LIBSELINUX
ZFS_AC_CONFIG_USER_FRAME_LARGER_THAN
- ZFS_AC_CONFIG_USER_STACK_GUARD
])
diff --git a/include/sys/zfs_context.h b/include/sys/zfs_context.h
index 6b00a5d5d..53080f382 100644
--- a/include/sys/zfs_context.h
+++ b/include/sys/zfs_context.h
@@ -190,12 +190,6 @@ extern void vpanic(const char *, __va_list);
#define STACK_SIZE 24576 /* Solaris */
#endif
-#ifdef NPTL_GUARD_WITHIN_STACK
-#define EXTRA_GUARD_BYTES PAGESIZE
-#else
-#define EXTRA_GUARD_BYTES 0
-#endif
-
/* in libzpool, p0 exists only to have its address taken */
typedef struct proc {
uintptr_t this_is_never_used_dont_dereference_it;
diff --git a/lib/libzpool/kernel.c b/lib/libzpool/kernel.c
index 0e10c8951..c1ce82d1b 100644
--- a/lib/libzpool/kernel.c
+++ b/lib/libzpool/kernel.c
@@ -175,8 +175,7 @@ zk_thread_create(caddr_t stk, size_t stksize, thread_func_t func, void *arg,
* on Linux.
*/
- stack = PTHREAD_STACK_MIN + MAX(stksize, STACK_SIZE) * 4 +
- EXTRA_GUARD_BYTES;
+ stack = PTHREAD_STACK_MIN + MAX(stksize, STACK_SIZE) * 4;
VERIFY3S(pthread_attr_init(&attr), ==, 0);
VERIFY3S(pthread_attr_setstacksize(&attr, stack), ==, 0);