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

This commit is contained in:
Hugo van Kemenade 2024-05-07 13:47:21 +02:00 committed by GitHub
parent 48e52fe2c9
commit 04859228aa
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 20 additions and 20 deletions

View File

@ -1250,10 +1250,10 @@ PyConfig
If non-zero, initialize the perf trampoline. See :ref:`perf_profiling` If non-zero, initialize the perf trampoline. See :ref:`perf_profiling`
for more information. for more information.
Set by :option:`-X perf <-X>` command line option and by the Set by :option:`-X perf <-X>` command-line option and by the
:envvar:`PYTHONPERFSUPPORT` environment variable for perf support :envvar:`PYTHON_PERF_JIT_SUPPORT` environment variable for perf support
with stack pointers and :option:`-X perfjit <-X>` command line option with stack pointers and :option:`-X perf_jit <-X>` command-line option
and by the :envvar:`PYTHONPERFJITSUPPORT` environment variable for perf and by the :envvar:`PYTHON_PERF_JIT_SUPPORT` environment variable for perf
support with DWARF JIT information. support with DWARF JIT information.
Default: ``-1``. Default: ``-1``.

View File

@ -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 ``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. 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 To enable this mode, you can use the environment variable :envvar:`PYTHON_PERF_JIT_SUPPORT` or the
:option:`-X perfjit <-X>` option, which will enable the JIT mode for the ``perf`` profiler. :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 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. 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 inject -i perf.data --jit
$ perf report -g -i perf.data $ perf report -g -i perf.data
or using the environment variable:: 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 inject -i perf.data --jit
$ perf report -g -i perf.data $ perf report -g -i perf.data

View File

@ -587,11 +587,11 @@ Miscellaneous options
.. versionadded:: 3.12 .. 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 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 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`. and :ref:`perf_profiling`.
.. versionadded:: 3.13 .. versionadded:: 3.13
@ -1137,7 +1137,7 @@ conflict.
.. versionadded:: 3.12 .. versionadded:: 3.12
.. envvar:: PYTHONPERFJITSUPPORT .. envvar:: PYTHON_PERF_JIT_SUPPORT
If this variable is set to a nonzero value, it enables support for 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 the Linux ``perf`` profiler so Python calls can be detected by it
@ -1145,7 +1145,7 @@ conflict.
If set to ``0``, disable Linux ``perf`` profiler support. 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`. and :ref:`perf_profiling`.
.. versionadded:: 3.13 .. versionadded:: 3.13

View File

@ -272,7 +272,7 @@ Other Language Changes
* Add :ref:`support for the perf profiler <perf_profiling>` working without * Add :ref:`support for the perf profiler <perf_profiling>` working without
frame pointers through the new environment variable 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`.) <-X>` (Contributed by Pablo Galindo in :gh:`118518`.)
* The new :envvar:`PYTHON_HISTORY` environment variable can be used to change * The new :envvar:`PYTHON_HISTORY` environment variable can be used to change

View File

@ -494,7 +494,7 @@ class TestPerfProfilerWithDwarf(unittest.TestCase, TestPerfProfilerMixin):
def run_perf(self, script_dir, script, activate_trampoline=True): def run_perf(self, script_dir, script, activate_trampoline=True):
if activate_trampoline: if activate_trampoline:
return run_perf( 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) return run_perf(script_dir, sys.executable, script, use_jit=True)

View File

@ -1,4 +1,4 @@
Allow the Linux perf support to work without frame pointers using perf's Allow the Linux perf support to work without frame pointers using perf's
advanced JIT support. The feature is activated when using the advanced JIT support. The feature is activated when using the
``PYTHONPERFJITSUPPORT`` environment variable or when running Python with ``PYTHON_PERF_JIT_SUPPORT`` environment variable or when running Python with
``-Xperfjit``. Patch by Pablo Galindo ``-Xperf_jit``. Patch by Pablo Galindo.

View File

@ -1703,7 +1703,7 @@ config_init_perf_profiling(PyConfig *config)
if (xoption) { if (xoption) {
config->perf_profiling = 1; config->perf_profiling = 1;
} }
env = config_get_env(config, "PYTHONPERFJITSUPPORT"); env = config_get_env(config, "PYTHON_PERF_JIT_SUPPORT");
if (env) { if (env) {
if (_Py_str_to_int(env, &active) != 0) { if (_Py_str_to_int(env, &active) != 0) {
active = 0; active = 0;
@ -1712,7 +1712,7 @@ config_init_perf_profiling(PyConfig *config)
config->perf_profiling = 2; config->perf_profiling = 2;
} }
} }
xoption = config_get_xoption(config, L"perfjit"); xoption = config_get_xoption(config, L"perf_jit");
if (xoption) { if (xoption) {
config->perf_profiling = 2; config->perf_profiling = 2;
} }

View File

@ -2294,7 +2294,7 @@ sys_activate_stack_trampoline_impl(PyObject *module, const char *backend)
return NULL; return NULL;
} }
} }
else if (strcmp(backend, "perfjit") == 0) { else if (strcmp(backend, "perf_jit") == 0) {
_PyPerf_Callbacks cur_cb; _PyPerf_Callbacks cur_cb;
_PyPerfTrampoline_GetCallbacks(&cur_cb); _PyPerfTrampoline_GetCallbacks(&cur_cb);
if (cur_cb.write_state != _Py_perfmap_jit_callbacks.write_state) { if (cur_cb.write_state != _Py_perfmap_jit_callbacks.write_state) {