Skip to content

Commit 4e17695

Browse files
committed
support passing --vm.Xmx to all VMs for python suites
1 parent 2b5e5f1 commit 4e17695

File tree

1 file changed

+27
-2
lines changed

1 file changed

+27
-2
lines changed

mx.graalpython/mx_graalpython_python_benchmarks.py

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -348,6 +348,16 @@ def run(self, cwd, args):
348348
name = name.replace("graalvm-ce-python", "graalvm-ce")
349349
name = name.replace("graalvm-ee-python", "graalvm-ee")
350350
type(host_vm).name = lambda s: name
351+
352+
for idx,arg in enumerate(args):
353+
if "--vm.Xmx" in arg:
354+
mx.log(f"Setting Xmx from {arg}")
355+
break
356+
else:
357+
xmxArg = "--vm.Xmx8G"
358+
mx.log(f"Setting Xmx as {xmxArg}")
359+
args.insert(0, xmxArg)
360+
351361
return self.host_vm().run_launcher("graalpy", self._options + args, cwd)
352362

353363

@@ -371,7 +381,17 @@ def interpreter(self):
371381

372382
def run(self, cwd, args):
373383
env = os.environ.copy()
374-
env["PYPY_GC_MAX"] = "8GB"
384+
xmxArg = re.compile("--vm.Xmx([0-9]+)([kKgGmM])")
385+
pypyGcMax = "8GB"
386+
for idx,arg in enumerate(args):
387+
if m := xmxArg.search(arg):
388+
args = args[:idx] + args[idx + 1:]
389+
pypyGcMax = f"{m.group(1)}{m.group(2).upper()}B"
390+
mx.log(f"Setting PYPY_GC_MAX={pypyGcMax} via {arg}")
391+
break
392+
else:
393+
mx.log(f"Setting PYPY_GC_MAX={pypyGcMax}, use --vm.Xmx argument to override it")
394+
env["PYPY_GC_MAX"] = pypyGcMax
375395
return mx.run([self.interpreter()] + args, cwd=cwd, env=env)
376396

377397

@@ -395,6 +415,11 @@ def interpreter(self):
395415
return join(home, "bin", "python")
396416

397417
def run(self, cwd, args):
418+
for idx,arg in enumerate(args):
419+
if "--vm.Xmx" in arg:
420+
mx.warn(f"Ignoring {arg}, cannot restrict memory on CPython.")
421+
args = args[:idx] + args[idx + 1:]
422+
break
398423
return mx.run([self.interpreter()] + args, cwd=cwd)
399424

400425

@@ -676,7 +701,7 @@ def register_python_benchmarks():
676701
python_vm_registry.add_vm(PyPyVm())
677702
python_vm_registry.add_vm(Python3Vm())
678703
for config_name, options, priority in [
679-
("launcher", ["--vm.Xmx8G"], 5),
704+
("launcher", [], 5),
680705
]:
681706
python_vm_registry.add_vm(GraalPyVm(config_name, options), SUITE, priority)
682707

0 commit comments

Comments
 (0)