Skip to content

Commit

Permalink
gh-124613: Deactivate perf support in tests if the jit is set (#124794)
Browse files Browse the repository at this point in the history
gh-124613: Deactivate the JIT during perf tests

Signed-off-by: Pablo Galindo <pablogsal@gmail.com>
  • Loading branch information
pablogsal authored Oct 4, 2024
1 parent c8db0e8 commit 5e9e506
Showing 1 changed file with 12 additions and 13 deletions.
25 changes: 12 additions & 13 deletions Lib/test/test_perf_profiler.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,15 +23,6 @@
raise unittest.SkipTest("test crash randomly on ASAN/MSAN/UBSAN build")


def is_jit_build():
cflags = (sysconfig.get_config_var("PY_CORE_CFLAGS") or '')
return "_Py_JIT" in cflags


if is_jit_build():
raise unittest.SkipTest("Perf support is not available in JIT builds")


def supports_trampoline_profiling():
perf_trampoline = sysconfig.get_config_var("PY_HAVE_PERF_TRAMPOLINE")
if not perf_trampoline:
Expand Down Expand Up @@ -71,11 +62,13 @@ def baz():
"""
with temp_dir() as script_dir:
script = make_script(script_dir, "perftest", code)
env = {**os.environ, "PYTHON_JIT": "0"}
with subprocess.Popen(
[sys.executable, "-Xperf", script],
text=True,
stderr=subprocess.PIPE,
stdout=subprocess.PIPE,
env=env,
) as process:
stdout, stderr = process.communicate()

Expand Down Expand Up @@ -139,11 +132,13 @@ def baz():
"""
with temp_dir() as script_dir:
script = make_script(script_dir, "perftest", code)
env = {**os.environ, "PYTHON_JIT": "0"}
with subprocess.Popen(
[sys.executable, "-Xperf", script],
text=True,
stderr=subprocess.PIPE,
stdout=subprocess.PIPE,
env=env,
) as process:
stdout, stderr = process.communicate()

Expand Down Expand Up @@ -188,11 +183,13 @@ def baz():
"""
with temp_dir() as script_dir:
script = make_script(script_dir, "perftest", code)
env = {**os.environ, "PYTHON_JIT": "0"}
with subprocess.Popen(
[sys.executable, script],
text=True,
stderr=subprocess.PIPE,
stdout=subprocess.PIPE,
env=env,
) as process:
stdout, stderr = process.communicate()

Expand Down Expand Up @@ -269,8 +266,9 @@ def perf_command_works():
"-c",
'print("hello")',
)
env = {**os.environ, "PYTHON_JIT": "0"}
stdout = subprocess.check_output(
cmd, cwd=script_dir, text=True, stderr=subprocess.STDOUT
cmd, cwd=script_dir, text=True, stderr=subprocess.STDOUT, env=env
)
except (subprocess.SubprocessError, OSError):
return False
Expand All @@ -282,11 +280,10 @@ def perf_command_works():


def run_perf(cwd, *args, use_jit=False, **env_vars):
env = os.environ.copy()
if env_vars:
env = os.environ.copy()
env.update(env_vars)
else:
env = None
env["PYTHON_JIT"] = "0"
output_file = cwd + "/perf_output.perf"
if not use_jit:
base_cmd = ("perf", "record", "-g", "--call-graph=fp", "-o", output_file, "--")
Expand Down Expand Up @@ -455,11 +452,13 @@ def compile_trampolines_for_all_functions():

with temp_dir() as script_dir:
script = make_script(script_dir, "perftest", code)
env = {**os.environ, "PYTHON_JIT": "0"}
with subprocess.Popen(
[sys.executable, "-Xperf", script],
universal_newlines=True,
stderr=subprocess.PIPE,
stdout=subprocess.PIPE,
env=env,
) as process:
stdout, stderr = process.communicate()

Expand Down

0 comments on commit 5e9e506

Please sign in to comment.