Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

gh-118518: Rename PYTHONPERFJITSUPPORT and -X perfjit with underscores #118693

Merged
merged 2 commits into from
May 7, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions Doc/c-api/init_config.rst
Original file line number Diff line number Diff line change
Expand Up @@ -1250,10 +1250,10 @@ PyConfig
If non-zero, initialize the perf trampoline. See :ref:`perf_profiling`
for more information.

Set by :option:`-X perf <-X>` command line option and by the
:envvar:`PYTHONPERFSUPPORT` environment variable for perf support
with stack pointers and :option:`-X perfjit <-X>` command line option
and by the :envvar:`PYTHONPERFJITSUPPORT` environment variable for perf
Set by :option:`-X perf <-X>` command-line option and by the
:envvar:`PYTHON_PERF_JIT_SUPPORT` environment variable for perf support
with stack pointers and :option:`-X perf_jit <-X>` command-line option
and by the :envvar:`PYTHON_PERF_JIT_SUPPORT` environment variable for perf
support with DWARF JIT information.

Default: ``-1``.
Expand Down
8 changes: 4 additions & 4 deletions Doc/howto/perf_profiling.rst
Original file line number Diff line number Diff line change
Expand Up @@ -216,19 +216,19 @@ needs to generate unwinding information for every Python function call on the fl
``perf`` will take more time to process the data because it will need to use the DWARF debugging
information to unwind the stack and this is a slow process.

To enable this mode, you can use the environment variable :envvar:`PYTHONPERFJITSUPPORT` or the
:option:`-X perfjit <-X>` option, which will enable the JIT mode for the ``perf`` profiler.
To enable this mode, you can use the environment variable :envvar:`PYTHON_PERF_JIT_SUPPORT` or the
:option:`-X perf_jit <-X>` option, which will enable the JIT mode for the ``perf`` profiler.

When using the perf JIT mode, you need an extra step before you can run ``perf report``. You need to
call the ``perf inject`` command to inject the JIT information into the ``perf.data`` file.

$ perf record -F 9999 -g --call-graph dwarf -o perf.data python -Xperfjit my_script.py
$ perf record -F 9999 -g --call-graph dwarf -o perf.data python -Xperf_jit my_script.py
$ perf inject -i perf.data --jit
$ perf report -g -i perf.data

or using the environment variable::

$ PYTHONPERFJITSUPPORT=1 perf record -F 9999 -g --call-graph dwarf -o perf.data python my_script.py
$ PYTHON_PERF_JIT_SUPPORT=1 perf record -F 9999 -g --call-graph dwarf -o perf.data python my_script.py
$ perf inject -i perf.data --jit
$ perf report -g -i perf.data

Expand Down
10 changes: 5 additions & 5 deletions Doc/using/cmdline.rst
Original file line number Diff line number Diff line change
Expand Up @@ -587,11 +587,11 @@ Miscellaneous options

.. versionadded:: 3.12

* ``-X perfjit`` enables support for the Linux ``perf`` profiler with DWARF
* ``-X perf_jit`` enables support for the Linux ``perf`` profiler with DWARF
support. When this option is provided, the ``perf`` profiler will be able
to report Python calls using DWARF ifnormation. This option is only available on
to report Python calls using DWARF information. This option is only available on
some platforms and will do nothing if is not supported on the current
system. The default value is "off". See also :envvar:`PYTHONPERFJITSUPPORT`
system. The default value is "off". See also :envvar:`PYTHON_PERF_JIT_SUPPORT`
and :ref:`perf_profiling`.

.. versionadded:: 3.13
Expand Down Expand Up @@ -1137,15 +1137,15 @@ conflict.

.. versionadded:: 3.12

.. envvar:: PYTHONPERFJITSUPPORT
.. envvar:: PYTHON_PERF_JIT_SUPPORT

If this variable is set to a nonzero value, it enables support for
the Linux ``perf`` profiler so Python calls can be detected by it
using DWARF information.

If set to ``0``, disable Linux ``perf`` profiler support.

See also the :option:`-X perfjit <-X>` command-line option
See also the :option:`-X perf_jit <-X>` command-line option
and :ref:`perf_profiling`.

.. versionadded:: 3.13
Expand Down
2 changes: 1 addition & 1 deletion Doc/whatsnew/3.13.rst
Original file line number Diff line number Diff line change
Expand Up @@ -272,7 +272,7 @@ Other Language Changes

* Add :ref:`support for the perf profiler <perf_profiling>` working without
frame pointers through the new environment variable
:envvar:`PYTHONPERFJITSUPPORT` and command-line option :option:`-X perfjit
:envvar:`PYTHON_PERF_JIT_SUPPORT` and command-line option :option:`-X perf_jit
<-X>` (Contributed by Pablo Galindo in :gh:`118518`.)

* The new :envvar:`PYTHON_HISTORY` environment variable can be used to change
Expand Down
2 changes: 1 addition & 1 deletion Lib/test/test_perf_profiler.py
Original file line number Diff line number Diff line change
Expand Up @@ -494,7 +494,7 @@ class TestPerfProfilerWithDwarf(unittest.TestCase, TestPerfProfilerMixin):
def run_perf(self, script_dir, script, activate_trampoline=True):
if activate_trampoline:
return run_perf(
script_dir, sys.executable, "-Xperfjit", script, use_jit=True
script_dir, sys.executable, "-Xperf_jit", script, use_jit=True
)
return run_perf(script_dir, sys.executable, script, use_jit=True)

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Allow the Linux perf support to work without frame pointers using perf's
advanced JIT support. The feature is activated when using the
``PYTHONPERFJITSUPPORT`` environment variable or when running Python with
``-Xperfjit``. Patch by Pablo Galindo
``PYTHON_PERF_JIT_SUPPORT`` environment variable or when running Python with
``-Xperf_jit``. Patch by Pablo Galindo.
4 changes: 2 additions & 2 deletions Python/initconfig.c
Original file line number Diff line number Diff line change
Expand Up @@ -1703,7 +1703,7 @@ config_init_perf_profiling(PyConfig *config)
if (xoption) {
config->perf_profiling = 1;
}
env = config_get_env(config, "PYTHONPERFJITSUPPORT");
env = config_get_env(config, "PYTHON_PERF_JIT_SUPPORT");
if (env) {
if (_Py_str_to_int(env, &active) != 0) {
active = 0;
Expand All @@ -1712,7 +1712,7 @@ config_init_perf_profiling(PyConfig *config)
config->perf_profiling = 2;
}
}
xoption = config_get_xoption(config, L"perfjit");
xoption = config_get_xoption(config, L"perf_jit");
if (xoption) {
config->perf_profiling = 2;
}
Expand Down
2 changes: 1 addition & 1 deletion Python/sysmodule.c
Original file line number Diff line number Diff line change
Expand Up @@ -2294,7 +2294,7 @@ sys_activate_stack_trampoline_impl(PyObject *module, const char *backend)
return NULL;
}
}
else if (strcmp(backend, "perfjit") == 0) {
else if (strcmp(backend, "perf_jit") == 0) {
_PyPerf_Callbacks cur_cb;
_PyPerfTrampoline_GetCallbacks(&cur_cb);
if (cur_cb.write_state != _Py_perfmap_jit_callbacks.write_state) {
Expand Down
Loading