summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@python.org>2024-06-17 16:08:05 (GMT)
committerGitHub <noreply@github.com>2024-06-17 16:08:05 (GMT)
commit6acf7776ef8e0f08e1d4b4b5511bea8d716f571f (patch)
treeaef1d1401319629eddaf82666ed8adbadc2d3466
parent0506f75c53ce0895408050ededcfb66bc07eb19b (diff)
downloadcpython-6acf7776ef8e0f08e1d4b4b5511bea8d716f571f.zip
cpython-6acf7776ef8e0f08e1d4b4b5511bea8d716f571f.tar.gz
cpython-6acf7776ef8e0f08e1d4b4b5511bea8d716f571f.tar.bz2
gh-120507: Double WASI memory (#120648)
Use 16 MiB stack with 40 MiB memory limit, instead of 8 MiB stack with 20 MiB memory limit.
-rw-r--r--Tools/wasm/wasi.py5
-rwxr-xr-xTools/wasm/wasm_build.py2
-rwxr-xr-xconfigure4
-rw-r--r--configure.ac6
4 files changed, 8 insertions, 9 deletions
diff --git a/Tools/wasm/wasi.py b/Tools/wasm/wasi.py
index efb005e..f69299f 100644
--- a/Tools/wasm/wasi.py
+++ b/Tools/wasm/wasi.py
@@ -280,9 +280,8 @@ def main():
default_host_runner = (f"{shutil.which('wasmtime')} run "
# Make sure the stack size will work for a pydebug
# build.
- # The 8388608 value comes from `ulimit -s` under Linux
- # which equates to 8291 KiB.
- "--wasm max-wasm-stack=8388608 "
+ # Use 16 MiB stack.
+ "--wasm max-wasm-stack=16777216 "
# Use WASI 0.2 primitives.
"--wasi preview2 "
# Enable thread support; causes use of preview1.
diff --git a/Tools/wasm/wasm_build.py b/Tools/wasm/wasm_build.py
index 47a0abb..bcb8021 100755
--- a/Tools/wasm/wasm_build.py
+++ b/Tools/wasm/wasm_build.py
@@ -329,7 +329,7 @@ WASI = Platform(
# workaround for https://github.com/python/cpython/issues/95952
"HOSTRUNNER": (
"wasmtime run "
- "--wasm max-wasm-stack=8388608 "
+ "--wasm max-wasm-stack=16777216 "
"--wasi preview2 "
"--dir {srcdir}::/ "
"--env PYTHONPATH=/{relbuilddir}/build/lib.wasi-wasm32-{version}:/Lib"
diff --git a/configure b/configure
index 4174633..003f68a 100755
--- a/configure
+++ b/configure
@@ -7758,7 +7758,7 @@ then :
fi
;; #(
WASI/*) :
- HOSTRUNNER='wasmtime run --wasm max-wasm-stack=8388608 --wasi preview2 --env PYTHONPATH=/$(shell realpath --relative-to $(abs_srcdir) $(abs_builddir))/$(shell cat pybuilddir.txt):/Lib --dir $(srcdir)::/' ;; #(
+ HOSTRUNNER='wasmtime run --wasm max-wasm-stack=16777216 --wasi preview2 --env PYTHONPATH=/$(shell realpath --relative-to $(abs_srcdir) $(abs_builddir))/$(shell cat pybuilddir.txt):/Lib --dir $(srcdir)::/' ;; #(
*) :
HOSTRUNNER=''
;;
@@ -9560,7 +9560,7 @@ then :
fi
- as_fn_append LDFLAGS_NODIST " -z stack-size=8388608 -Wl,--stack-first -Wl,--initial-memory=20971520"
+ as_fn_append LDFLAGS_NODIST " -z stack-size=16777216 -Wl,--stack-first -Wl,--initial-memory=41943040"
;; #(
*) :
diff --git a/configure.ac b/configure.ac
index d34ade3..f9612b3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1609,7 +1609,7 @@ then
dnl TODO: support other WASI runtimes
dnl wasmtime starts the proces with "/" as CWD. For OOT builds add the
dnl directory containing _sysconfigdata to PYTHONPATH.
- [WASI/*], [HOSTRUNNER='wasmtime run --wasm max-wasm-stack=8388608 --wasi preview2 --env PYTHONPATH=/$(shell realpath --relative-to $(abs_srcdir) $(abs_builddir))/$(shell cat pybuilddir.txt):/Lib --dir $(srcdir)::/'],
+ [WASI/*], [HOSTRUNNER='wasmtime run --wasm max-wasm-stack=16777216 --wasi preview2 --env PYTHONPATH=/$(shell realpath --relative-to $(abs_srcdir) $(abs_builddir))/$(shell cat pybuilddir.txt):/Lib --dir $(srcdir)::/'],
[HOSTRUNNER='']
)
fi
@@ -2403,10 +2403,10 @@ AS_CASE([$ac_sys_system],
AS_VAR_APPEND([LDFLAGS_NODIST], [" -Wl,--max-memory=10485760"])
])
- dnl gh-117645: Set the memory size to 20 MiB, the stack size to 8 MiB,
+ dnl gh-117645: Set the memory size to 40 MiB, the stack size to 16 MiB,
dnl and move the stack first.
dnl https://github.com/WebAssembly/wasi-libc/issues/233
- AS_VAR_APPEND([LDFLAGS_NODIST], [" -z stack-size=8388608 -Wl,--stack-first -Wl,--initial-memory=20971520"])
+ AS_VAR_APPEND([LDFLAGS_NODIST], [" -z stack-size=16777216 -Wl,--stack-first -Wl,--initial-memory=41943040"])
]
)