From 5f8a9e6a028e9528567682cb0a92addb23032787 Mon Sep 17 00:00:00 2001 From: Ryan Moeller Date: Tue, 22 Sep 2020 19:03:11 -0400 Subject: [PATCH] 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 Reviewed-by: Kyle Evans Signed-off-by: Ryan Moeller Closes #10959 --- include/sys/lua/luaconf.h | 4 ---- module/lua/llimits.h | 9 --------- 2 files changed, 13 deletions(-) diff --git a/include/sys/lua/luaconf.h b/include/sys/lua/luaconf.h index ce99f339fe..83202d71c2 100644 --- a/include/sys/lua/luaconf.h +++ b/include/sys/lua/luaconf.h @@ -368,11 +368,7 @@ extern int lcompat_hashnum(int64_t); @@ LUAL_BUFFERSIZE is the buffer size used by the lauxlib buffer system. ** CHANGE it if it uses too much C-stack space. */ -#ifdef __linux__ #define LUAL_BUFFERSIZE 512 -#else -#define LUAL_BUFFERSIZE 1024 -#endif /* diff --git a/module/lua/llimits.h b/module/lua/llimits.h index 25466f14ed..177092fbc2 100644 --- a/module/lua/llimits.h +++ b/module/lua/llimits.h @@ -126,16 +126,7 @@ typedef LUAI_UACNUMBER l_uacNumber; * 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. */ -#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 -#endif /* ** maximum number of upvalues in a closure (both C and Lua). (Value