Seems to be nothing for it except to raise DEFAULT_THREAD_STACK. Why is ppc

so much more stack-hungry than before?
This commit is contained in:
Tom Lane 2008-01-08 19:58:47 +00:00 committed by Michal Schorm
parent ed0e45cfe8
commit aeb5ae2bb0

View File

@ -1,28 +1,37 @@
Talk about silly byte-shaving ... the "stock" value does not work on s390x,
and probably not on some other platforms either. Knock it up to twice the
pre-5.0.33 value to have some margin for future changes in compiler, glibc,
etc. Suspect this number if "execution_constants" regression test fails.
Talk about silly byte-shaving ... the "stock" value of STACK_MIN_SIZE
does not work on s390x, and probably not on some other platforms either.
Knock it up to twice the pre-5.0.33 value to have some margin for future
changes in compiler, glibc, etc. Suspect this number if
"execution_constants" regression test fails.
As of 5.0.45 and F9, it seems 16384 isn't enough anymore (ppc fails).
But we can't raise it too much because it has to be less than
DEFAULT_THREAD_STACK / 8, and DEFAULT_THREAD_STACK is dependent on
SIZEOF_CHARP. (Could change DEFAULT_THREAD_STACK too if our backs are
to the wall, but I'd rather not.)
As of 5.0.45 and F9, it seems 16384 isn't enough anymore either (ppc fails,
and seems to now need something above 20000 --- why?). STACK_MIN_SIZE has
to be enough less than DEFAULT_THREAD_STACK / 8 to provide some headroom,
which means we are now also forced to raise DEFAULT_THREAD_STACK for 32-bit
arches.
diff -Naur mysql-5.0.45.orig/include/my_pthread.h mysql-5.0.45/include/my_pthread.h
--- mysql-5.0.45.orig/include/my_pthread.h 2007-07-04 09:06:05.000000000 -0400
+++ mysql-5.0.45/include/my_pthread.h 2008-01-08 14:51:39.000000000 -0500
@@ -737,7 +737,7 @@
*/
#define DEFAULT_THREAD_STACK (256*1024L)
#else
-#define DEFAULT_THREAD_STACK (192*1024)
+#define DEFAULT_THREAD_STACK (256*1024)
#endif
#endif
diff -Naur mysql-5.0.45.orig/sql/mysql_priv.h mysql-5.0.45/sql/mysql_priv.h
--- mysql-5.0.45.orig/sql/mysql_priv.h 2007-07-04 09:06:41.000000000 -0400
+++ mysql-5.0.45/sql/mysql_priv.h 2008-01-08 13:32:45.000000000 -0500
@@ -173,7 +173,11 @@
+++ mysql-5.0.45/sql/mysql_priv.h 2008-01-08 14:51:55.000000000 -0500
@@ -173,7 +173,7 @@
Feel free to raise this by the smallest amount you can to get the
"execution_constants" test to pass.
*/
-#define STACK_MIN_SIZE 12000 // Abort if less stack during eval.
+#if SIZEOF_CHARP > 4
+#define STACK_MIN_SIZE 24576 // Abort if less stack during eval.
+#else
+#define STACK_MIN_SIZE 20000 // Abort if less stack during eval.
+#endif
#define STACK_MIN_SIZE_FOR_OPEN 1024*80
#define STACK_BUFF_ALLOC 352 // For stack overrun checks