FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

gh-107954: Fix configuration type for the perf profiler by pablogsal · Pull Request #124636 · python/cpython · GitHub

/ cpython Public
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension .c  (2) .py  (2) .rst  (1) All 3 file types selected
Viewed files
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Unified
Split
Hide whitespace
Diff view
Unified
Split
Hide whitespace
21 changes: 13 additions & 8 deletions Doc/c-api/init_config.rst
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Original file line number Diff line number Diff line change
Expand Up @@ -1248,19 +1248,24 @@ PyConfig

.. c:member:: int perf_profiling

Enable compatibility mode with the perf profiler?
Enable the Linux ``perf`` profiler support?

If non-zero, initialize the perf trampoline. See :ref:`perf_profiling`
for more information.
If equals to ``1``, enable support for the Linux ``perf`` profiler.

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.
If equals to ``2``, enable support for the Linux ``perf`` profiler with
DWARF JIT support.

Set to ``1`` by :option:`-X perf <-X>` command-line option and the
:envvar:`PYTHONPERFSUPPORT` environment variable.

Set to ``2`` by the :option:`-X perf_jit <-X>` command-line option and
the :envvar:`PYTHON_PERF_JIT_SUPPORT` environment variable.

Default: ``-1``.

.. seealso::
See :ref:`perf_profiling` for more information.

.. versionadded:: 3.12

.. c:member:: int use_environment
Expand Down
2 changes: 1 addition & 1 deletion Lib/test/test_capi/test_config.py
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ def test_config_get(self):
("parser_debug", bool, None),
("parse_argv", bool, None),
("pathconfig_warnings", bool, None),
("perf_profiling", bool, None),
("perf_profiling", int, None),
("platlibdir", str, "platlibdir"),
("prefix", str | None, "prefix"),
("program_name", str, None),
Expand Down
13 changes: 8 additions & 5 deletions Lib/test/test_embed.py
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Original file line number Diff line number Diff line change
Expand Up @@ -560,7 +560,7 @@ class InitConfigTests(EmbeddingTestsMixin, unittest.TestCase):
'cpu_count': -1,
'faulthandler': False,
'tracemalloc': 0,
'perf_profiling': False,
'perf_profiling': 0,
'import_time': False,
'code_debug_ranges': True,
'show_ref_count': False,
Expand Down Expand Up @@ -652,7 +652,7 @@ class InitConfigTests(EmbeddingTestsMixin, unittest.TestCase):
use_hash_seed=False,
faulthandler=False,
tracemalloc=False,
perf_profiling=False,
perf_profiling=0,
pathconfig_warnings=False,
)
if MS_WINDOWS:
Expand Down Expand Up @@ -966,7 +966,7 @@ def test_init_from_config(self):
'use_hash_seed': True,
'hash_seed': 123,
'tracemalloc': 2,
'perf_profiling': False,
'perf_profiling': 0,
'import_time': True,
'code_debug_ranges': False,
'show_ref_count': True,
Expand Down Expand Up @@ -1031,7 +1031,7 @@ def test_init_compat_env(self):
'use_hash_seed': True,
'hash_seed': 42,
'tracemalloc': 2,
'perf_profiling': False,
'perf_profiling': 0,
'import_time': True,
'code_debug_ranges': False,
'malloc_stats': True,
Expand All @@ -1051,6 +1051,7 @@ def test_init_compat_env(self):
'module_search_paths': self.IGNORE_CONFIG,
'safe_path': True,
'int_max_str_digits': 4567,
'perf_profiling': 1,
}
if Py_STATS:
config['_pystats'] = 1
Expand All @@ -1066,7 +1067,7 @@ def test_init_python_env(self):
'use_hash_seed': True,
'hash_seed': 42,
'tracemalloc': 2,
'perf_profiling': False,
'perf_profiling': 0,
'import_time': True,
'code_debug_ranges': False,
'malloc_stats': True,
Expand All @@ -1086,6 +1087,7 @@ def test_init_python_env(self):
'module_search_paths': self.IGNORE_CONFIG,
'safe_path': True,
'int_max_str_digits': 4567,
'perf_profiling': 1,
}
if Py_STATS:
config['_pystats'] = True
Expand Down Expand Up @@ -1763,6 +1765,7 @@ def test_initconfig_api(self):
'xoptions': {'faulthandler': True},
'hash_seed': 10,
'use_hash_seed': True,
'perf_profiling': 2,
}
config_dev_mode(preconfig, config)
self.check_all_configs("test_initconfig_api", config, preconfig,
Expand Down
5 changes: 5 additions & 0 deletions Programs/_testembed.c
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Original file line number Diff line number Diff line change
Expand Up @@ -810,6 +810,7 @@ static void set_most_env_vars(void)
#ifdef Py_STATS
putenv("PYTHONSTATS=1");
#endif
putenv("PYTHONPERFSUPPORT=1");
}


Expand Down Expand Up @@ -1844,6 +1845,10 @@ static int test_initconfig_api(void)
goto error;
}

if (PyInitConfig_SetInt(config, "perf_profiling", 2) < 0) {
goto error;
}

// Set a UTF-8 string (program_name)
if (PyInitConfig_SetStr(config, "program_name", PROGRAM_NAME_UTF8) < 0) {
goto error;
Expand Down
2 changes: 1 addition & 1 deletion Python/initconfig.c
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ static const PyConfigSpec PYCONFIG_SPEC[] = {
SPEC(orig_argv, WSTR_LIST, READ_ONLY, SYS_ATTR("orig_argv")),
SPEC(parse_argv, BOOL, READ_ONLY, NO_SYS),
SPEC(pathconfig_warnings, BOOL, READ_ONLY, NO_SYS),
SPEC(perf_profiling, BOOL, READ_ONLY, NO_SYS),
SPEC(perf_profiling, UINT, READ_ONLY, NO_SYS),
SPEC(program_name, WSTR, READ_ONLY, NO_SYS),
SPEC(run_command, WSTR_OPT, READ_ONLY, NO_SYS),
SPEC(run_filename, WSTR_OPT, READ_ONLY, NO_SYS),
Expand Down

Back | FazBrowse Home | New Git URL