Increase default user space stack size

Under RHEL6/CentOS6 the default stack size must be increased to 32K
to prevent overflowing the stack when running ztest.  This isn't an
issue for other distributions due to either the version of pthreads
or perhaps the compiler.  Doubling the stack size resolves the
issue safely for all distribution and leaves us some headroom.

$ sudo -E ztest -V -T 300 -f /var/tmp/
5 vdevs, 7 datasets, 23 threads, 300 seconds...

loading space map for vdev 0 of 1, metaslab 0 of 30 ...
...
loading space map for vdev 0 of 1, metaslab 14 of 30 ...
child died with signal 11
Exited ztest with error 3

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #4215
This commit is contained in:
Brian Behlendorf
2016-01-13 10:41:24 -08:00
parent e6cfd633be
commit 89666a8e1c
3 changed files with 5 additions and 6 deletions
+3 -4
View File
@@ -149,11 +149,10 @@ ztest -f / -V -T 120
.TP
.B "ZFS_STACK_SIZE=stacksize"
Limit the default stack size to \fBstacksize\fR bytes for the purpose of
detecting and debugging kernel stack overflows. For x86_64 platforms this
value should be set as follows to simulate these platforms: \fB8192\fR
(Linux), \fB20480\fR (Illumos), \fB16384\fR (FreeBSD).
detecting and debugging kernel stack overflows. This value defaults to
\fB32K\fR which is double the default \fB16K\fR Linux kernel stack size.
In practice you may need to set these value slightly higher because
In practice, setting the stack size slightly higher is needed because
differences in stack usage between kernel and user space can lead to spurious
stack overflows (especially when debugging is enabled). The specified value
will be rounded up to a floor of PTHREAD_STACK_MIN which is the minimum stack