FreeBSD: Reduce stack usage of Lua

Use the same reduced buffer size for lauxlib that is used on Linux.

Fixes panic on HEAD in lua gsub test designed to exhaust stack space.

With this we can remove the special case to reserve more stack space
on FreeBSD.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Kyle Evans <kevans@FreeBSD.org>
Signed-off-by: Ryan Moeller <ryan@iXsystems.com>
Closes #10959
This commit is contained in:
Ryan Moeller 2020-09-22 19:03:11 -04:00 committed by GitHub
parent 6bdb09510b
commit 5f8a9e6a02
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 0 additions and 13 deletions

View File

@ -368,11 +368,7 @@ extern int lcompat_hashnum(int64_t);
@@ LUAL_BUFFERSIZE is the buffer size used by the lauxlib buffer system. @@ LUAL_BUFFERSIZE is the buffer size used by the lauxlib buffer system.
** CHANGE it if it uses too much C-stack space. ** CHANGE it if it uses too much C-stack space.
*/ */
#ifdef __linux__
#define LUAL_BUFFERSIZE 512 #define LUAL_BUFFERSIZE 512
#else
#define LUAL_BUFFERSIZE 1024
#endif
/* /*

View File

@ -126,16 +126,7 @@ typedef LUAI_UACNUMBER l_uacNumber;
* Minimum amount of available stack space (in bytes) to make a C call. With * Minimum amount of available stack space (in bytes) to make a C call. With
* gsub() recursion, the stack space between each luaD_call() is 1256 bytes. * gsub() recursion, the stack space between each luaD_call() is 1256 bytes.
*/ */
#if defined(__FreeBSD__)
/*
* FreeBSD needs a few extra bytes in unoptimized debug builds to avoid a
* double-fault handling the error when the max call depth is exceeded just
* before the C stack runs out. 64 bytes seems to do the trick.
*/
#define LUAI_MINCSTACK 4160
#else
#define LUAI_MINCSTACK 4096 #define LUAI_MINCSTACK 4096
#endif
/* /*
** maximum number of upvalues in a closure (both C and Lua). (Value ** maximum number of upvalues in a closure (both C and Lua). (Value