gh-117645: Increase WASI stack size from 512 KiB to 8 MiB (#117674)

Increase also the initial memory from 10 MiB to 20 MiB.

Reenable test_dynamic on WASI build.
This commit is contained in:
Victor Stinner 2024-04-16 23:26:54 +02:00 committed by GitHub
parent 3fe03ccea6
commit 919784737c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 10 additions and 13 deletions

View file

@ -198,14 +198,6 @@ struct _ts {
#ifdef Py_DEBUG
// A debug build is likely built with low optimization level which implies
// higher stack memory usage than a release build: use a lower limit.
# if defined(__wasi__)
// Based on wasmtime 16.
# define Py_C_RECURSION_LIMIT 150
# else
# define Py_C_RECURSION_LIMIT 500
# endif
#elif defined(__wasi__)
// Based on wasmtime 16.
# define Py_C_RECURSION_LIMIT 500
#elif defined(__s390x__)
# define Py_C_RECURSION_LIMIT 800
@ -219,6 +211,9 @@ struct _ts {
# define Py_C_RECURSION_LIMIT 3000
#elif defined(_Py_ADDRESS_SANITIZER)
# define Py_C_RECURSION_LIMIT 4000
#elif defined(__wasi__)
// Based on wasmtime 16.
# define Py_C_RECURSION_LIMIT 5000
#else
// This value is duplicated in Lib/test/support/__init__.py
# define Py_C_RECURSION_LIMIT 10000

View file

@ -4,7 +4,7 @@
import sys
import unittest
from test.support import is_wasi, swap_item, swap_attr
from test.support import swap_item, swap_attr
class RebindBuiltinsTests(unittest.TestCase):
@ -134,7 +134,6 @@ def test_eval_gives_lambda_custom_globals(self):
self.assertEqual(foo(), 7)
@unittest.skipIf(is_wasi, "stack depth too shallow in WASI")
def test_load_global_specialization_failure_keeps_oparg(self):
# https://github.com/python/cpython/issues/91625
class MyGlobals(dict):

View file

@ -0,0 +1,2 @@
Increase WASI stack size from 512 KiB to 8 MiB and the initial memory from 10
MiB to 20 MiB. Patch by Victor Stinner.

2
configure generated vendored
View file

@ -9530,7 +9530,7 @@ then :
fi
as_fn_append LDFLAGS_NODIST " -z stack-size=524288 -Wl,--stack-first -Wl,--initial-memory=10485760"
as_fn_append LDFLAGS_NODIST " -z stack-size=8388608 -Wl,--stack-first -Wl,--initial-memory=20971520"
;; #(
*) :

View file

@ -2384,9 +2384,10 @@ AS_CASE([$ac_sys_system],
AS_VAR_APPEND([LDFLAGS_NODIST], [" -Wl,--max-memory=10485760"])
])
dnl increase initial memory and stack size, move stack first
dnl gh-117645: Set the memory size to 20 MiB, the stack size to 8 MiB,
dnl and move the stack first.
dnl https://github.com/WebAssembly/wasi-libc/issues/233
AS_VAR_APPEND([LDFLAGS_NODIST], [" -z stack-size=524288 -Wl,--stack-first -Wl,--initial-memory=10485760"])
AS_VAR_APPEND([LDFLAGS_NODIST], [" -z stack-size=8388608 -Wl,--stack-first -Wl,--initial-memory=20971520"])
]
)