cpython/Python
Pablo Galindo Salgado 661df25692
gh-149584: Fix excessive overhead in the Tachyon profiler regarding the cache behavior (#149649)
Use exact remote reads for interpreter state, thread state, and
interpreter frame structs instead of pulling full remote pages into the
profiler page cache. This matches the core change from
python/cpython#149585.

The profiler clears the page cache between samples, so live entries are
always packed at the front. Track the live count and only clear/search
that prefix instead of scanning all 1024 slots on the hot path.

Use the frame cache to predict the next thread state and top frame
address, then batch interpreter/thread/frame reads with process_vm_readv
when profiling a Linux target. Reuse prefetched frame buffers in the
frame walker when the prediction is valid.

Cache the last FrameInfo tuple per code object/instruction offset, reuse
cached thread id objects, and append cached parent frames directly on
full frame-cache hits. This cuts Python allocation churn in the
steady-state profiler path.
2026-05-20 04:32:08 -07:00
..
clinic gh-149321: Remove lazy_imports=none startup mode (#149389) 2026-05-19 16:01:15 -07:00
deepfreeze gh-149321: Remove lazy_imports=none startup mode (#149389) 2026-05-19 16:01:15 -07:00
frozen_modules
_contextvars.c gh-128341: Use _Py_ABI_SLOT in stdlib modules (#145770) 2026-03-24 17:47:55 +00:00
_warnings.c gh-143231: Add the module attribute to warnings.WarningMessage (GH-149298) 2026-05-03 09:35:47 +00:00
asdl.c
asm_trampoline.S gh-139808: Add branch protections for aarch64 in asm_trampoline.S (#130864) 2026-05-12 15:42:44 +00:00
asm_trampoline_aarch64.h gh-139808: Add branch protections for aarch64 in asm_trampoline.S (#130864) 2026-05-12 15:42:44 +00:00
assemble.c gh-146442: Fix various bugs in compiler pipeline (#146443) 2026-03-30 22:04:04 +02:00
ast.c gh-143055: Implementation of PEP 798 (#143056) 2026-01-30 20:37:52 -08:00
ast_preprocess.c gh-143055: Implementation of PEP 798 (#143056) 2026-01-30 20:37:52 -08:00
ast_unparse.c gh-143055: Fix crash in AST unparser when unparsing dict comprehension unpacking (#145556) 2026-03-09 10:37:23 -07:00
bltinmodule.c gh-148829: Implement PEP 661 (#148831) 2026-04-27 19:28:30 -07:00
bootstrap_hash.c
brc.c
bytecodes.c GH-149501: Fix compilation warning in _YIELD_VALUE uop (#149502) 2026-05-12 22:47:35 +05:30
ceval.c gh-149321: Remove lazy_imports=none startup mode (#149389) 2026-05-19 16:01:15 -07:00
ceval.h gh-142186: Allow all PEP-669 events to be per-code object and disableable (GH-146182) 2026-04-22 09:08:23 +01:00
ceval_gil.c gh-144748: Make PyErr_CheckSignals raise the exception scheduled by PyThreadState_SetAsyncExc (GH-145178) 2026-03-02 11:47:32 +01:00
ceval_macros.h GH-143732: SEND specialization (GH-148963) 2026-05-05 15:19:16 +01:00
codecs.c Python/codecs.c: Remove unused forward declaration (#139511) 2025-10-03 13:33:49 +02:00
codegen.c gh-150027: Avoid copying during construction of frozenset objects (GH-150028) 2026-05-19 13:57:37 -04:00
compile.c gh-148973: fix segfault on mismatch between consts size and oparg in compiler (#148974) 2026-04-25 10:47:41 +01:00
condvar.h
config_common.h
context.c gh-116738: make entering of contextvars.Context thread safe (#143074) 2026-01-06 12:24:02 +05:30
critical_section.c gh-144513: Skip critical section locking during stop-the-world (gh-144524) 2026-02-06 15:14:08 +00:00
crossinterp.c gh-147998: Fix possible memory leak in _pop_preserved (crossinterp.c) (GH-147999) 2026-05-04 16:45:31 +03:00
crossinterp_data_lookup.h gh-147960: Fix memory leak in crossinterp _tuple_shared() on alloc failure (#147961) 2026-04-01 18:34:55 +02:00
crossinterp_exceptions.h gh-132775: Clean Up Cross-Interpreter Error Handling (gh-135369) 2025-06-13 16:45:21 -06:00
dtoa.c gh-145633: Remove support for ancient ARM platforms with mixed-endian doubles (#145634) 2026-03-11 12:39:24 +01:00
dup2.c
dynamic_annotations.c
dynload_hpux.c
dynload_shlib.c gh-148758: Fix dynamic loading file extensions for Cygwin (#148759) 2026-05-13 21:50:24 +00:00
dynload_stub.c
dynload_win.c gh-148690: Build Windows freethreaded binaries into separate directory and include python3t.dll on GIL-enabled (GH-149218) 2026-05-04 17:45:08 +01:00
emscripten_signal.c
emscripten_syscalls.c gh-124621: Emscripten: Fix __syscall_ioctl patch (GH-136993) 2025-07-22 15:05:26 +02:00
emscripten_trampoline.c gh-145037: Fix Emscripten trampoline with emcc >= 4.0.19 (#145038) 2026-02-26 06:21:05 +08:00
emscripten_trampoline_inner.c gh-128627: Use __builtin_wasm_test_function_pointer_signature for Emscripten trampoline (#137470) 2025-09-17 15:33:55 +01:00
errors.c gh-146480: Override the exception in _PyErr_SetKeyError() (#146486) 2026-03-27 11:20:19 +00:00
executor_cases.c.h GH-149501: Fix compilation warning in _YIELD_VALUE uop (#149502) 2026-05-12 22:47:35 +05:30
fileutils.c gh-42400: Fix buffer overflow in _Py_wrealpath() for very long paths (#141529) 2025-11-18 17:34:58 +01:00
flowgraph.c gh-148871: extend and improve LOAD_COMMON_CONSTANT (GH-148971) 2026-05-02 19:59:51 +01:00
frame.c gh-144446: Fix some frame object thread-safety issues (gh-144479) 2026-02-06 09:43:36 -05:00
frozen.c GH-145278: freeze encodings (partially) and linecache (#148347) 2026-04-14 21:01:23 +01:00
frozenmain.c Use PyConfig_Get() in frozenmain.c (#137421) 2025-08-06 14:33:28 +02:00
future.c
gc.c GH-148726: Add heap_size to generational GC (#149195) 2026-05-04 22:14:45 +01:00
gc_free_threading.c gh-148937: revert process RSS based GC deferral (#149475) 2026-05-07 14:32:14 +03:00
gc_gil.c
generated_cases.c.h GH-149501: Fix compilation warning in _YIELD_VALUE uop (#149502) 2026-05-12 22:47:35 +05:30
getargs.c gh-146615: Fix format specifiers in Python/ directory (GH-146619) 2026-03-31 10:59:17 +03:00
getcompiler.c gh-141341: Rename COMPILER macro to _Py_COMPILER on Windows (#141342) 2025-11-10 15:50:51 +01:00
getcopyright.c
getopt.c GH-133336: Remove reserved `-J` flag for Jython (#133444) 2025-05-05 15:09:19 +00:00
getplatform.c
getversion.c gh-119132: Remove "experimental" tag from the CPython free-threading. (gh-135550) 2025-06-16 23:32:52 +09:00
hamt.c GH-145247: Use _PyTuple_FromPair in Parser and Python (#145842) 2026-03-11 21:08:18 +00:00
hashtable.c
import.c PEP 810 - Update some error strings (#150126) 2026-05-20 00:47:44 +00:00
importdl.c gh-140011: Delete importdl assertion that prevents importing embedded modules from packages (GH-141605) 2025-11-26 14:12:49 +01:00
index_pool.c gh-91048: Refactor and optimize remote debugging module (#134652) 2025-05-25 20:19:29 +00:00
initconfig.c gh-149321: Remove lazy_imports=none startup mode (#149389) 2026-05-19 16:01:15 -07:00
instruction_sequence.c GH-143493: Conform to spec for generator expressions while supporting virtual iterators (GH-143569) 2026-01-16 09:11:58 +00:00
instrumentation.c gh-142186: Allow all PEP-669 events to be per-code object and disableable (GH-146182) 2026-04-22 09:08:23 +01:00
interpconfig.c gh-146615: Fix format specifiers in Python/ directory (GH-146619) 2026-03-31 10:59:17 +03:00
intrinsics.c gh-150027: Avoid copying during construction of frozenset objects (GH-150028) 2026-05-19 13:57:37 -04:00
jit.c GH-143732: SEND specialization (GH-148963) 2026-05-05 15:19:16 +01:00
jit_publish.c GH-126910: Add GNU backtrace support for unwinding JIT frames (#149104) 2026-05-05 09:29:07 +01:00
jit_unwind.c gh-139808: Add branch protections for aarch64 in asm_trampoline.S (#130864) 2026-05-12 15:42:44 +00:00
legacy_tracing.c gh-148037: remove critical section from PyCode_Addr2Line (#148103) 2026-04-10 17:58:17 +05:30
lock.c gh-148820: Fix _PyRawMutex use-after-free on spurious semaphore wakeup (gh-148852) 2026-04-22 14:31:19 -04:00
marshal.c gh-148418: Fix a possible reference leak in a corrupted TYPE_CODE marshal stream (GH-148419) 2026-05-04 16:42:02 +03:00
modsupport.c gh-146636: Py_mod_abi mandatory for modules created from slots array (GH-146855) 2026-04-02 13:54:21 +02:00
mysnprintf.c
mystrtoul.c
object_stack.c
opcode_targets.h GH-143732: SEND specialization (GH-148963) 2026-05-05 15:19:16 +01:00
optimizer.c GH-143732: SEND specialization (GH-148963) 2026-05-05 15:19:16 +01:00
optimizer_analysis.c gh-145235: Make dict watcher API thread-safe for free-threaded builds (gh-145233) 2026-05-11 11:39:55 -04:00
optimizer_bytecodes.c gh-144140: Optimize len for frozen dict/set constants in optimizer (#149969) 2026-05-18 12:20:42 +05:30
optimizer_cases.c.h gh-144140: Optimize len for frozen dict/set constants in optimizer (#149969) 2026-05-18 12:20:42 +05:30
optimizer_symbols.c gh-146261: JIT: protect against function version changes (#146300) 2026-04-13 02:23:47 +08:00
parking_lot.c gh-148820: Fix _PyRawMutex use-after-free on spurious semaphore wakeup (gh-148852) 2026-04-22 14:31:19 -04:00
pathconfig.c gh-133644: Remove deprecated Python initialization getter functions (#133661) 2025-05-09 11:39:23 +00:00
perf_jit_trampoline.c GH-126910: Add gdb support for unwinding JIT frames (#146071) 2026-05-02 13:42:03 +00:00
perf_trampoline.c GH-126910: Add gdb support for unwinding JIT frames (#146071) 2026-05-02 13:42:03 +00:00
preconfig.c gh-146302: make Py_IsInitialized() thread-safe and reflect true init completion (GH-146303) 2026-04-11 21:54:23 +00:00
pyarena.c
pyctype.c
pyfpe.c
pyhash.c gh-141226: Deprecate PEP-456 support for embedders (#141287) 2026-02-21 12:42:13 +01:00
pylifecycle.c gh-149321: Remove lazy_imports=none startup mode (#149389) 2026-05-19 16:01:15 -07:00
pymath.c
pystate.c gh-145235: Make dict watcher API thread-safe for free-threaded builds (gh-145233) 2026-05-11 11:39:55 -04:00
pystats.c gh-146073: Add fitness/exit quality mechanism for JIT trace frontend (GH-148089) 2026-04-24 10:37:01 +01:00
pystrcmp.c
pystrhex.c gh-149685: Use the _Py prefix for private C macros (GH-149686) 2026-05-13 19:14:05 +02:00
pystrtod.c gh-141004: soft-deprecate Py_INFINITY macro (#141033) 2025-11-12 13:44:49 +01:00
Python-ast.c gh-116021: Deprecate support for instantiating abstract AST nodes (#137865) 2026-05-02 09:50:06 -07:00
Python-tokenize.c gh-128341: Use _Py_ABI_SLOT in stdlib modules (#145770) 2026-03-24 17:47:55 +00:00
pythonrun.c gh-146615: Fix format specifiers in Python/ directory (GH-146619) 2026-03-31 10:59:17 +03:00
pytime.c gh-145731: Fix negative timestamp during DST on Windows (GH-145728) 2026-03-10 09:45:07 +01:00
qsbr.c gh-144438: Fix false sharing between QSBR and tlbc_index (gh-144554) 2026-02-17 11:12:25 -05:00
README
record_functions.c.h GH-143732: SEND specialization (GH-148963) 2026-05-05 15:19:16 +01:00
remote_debug.h gh-149584: Fix excessive overhead in the Tachyon profiler regarding the cache behavior (#149649) 2026-05-20 04:32:08 -07:00
remote_debugging.c gh-138122: Implement frame caching in RemoteUnwinder to reduce memory reads (#142137) 2025-12-06 22:37:34 +00:00
slots.c gh-149044: Implement PEP 820 – PySlot: Unified slot system for the C API (GH-149055) 2026-05-05 09:18:04 +02:00
slots.toml gh-149044: Implement PEP 820 – PySlot: Unified slot system for the C API (GH-149055) 2026-05-05 09:18:04 +02:00
slots_generated.c gh-149044: Implement PEP 820 – PySlot: Unified slot system for the C API (GH-149055) 2026-05-05 09:18:04 +02:00
specialize.c gh-100239: expose sq_repeat helpers for BINARY_OP_EXTEND (#148791) 2026-05-08 11:12:20 +00:00
stackrefs.c gh-131527: Stackref debug borrow checker (#140599) 2025-11-05 11:12:56 -08:00
stdlib_module_names.h gh-81313: Add the math.integer module (PEP-791) (GH-133909) 2025-10-31 16:13:43 +02:00
structmember.c gh-146270: Fix PyMember_SetOne(..., NULL) not being atomic (gh-148800) 2026-05-06 09:50:24 -04:00
suggestions.c
symtable.c gh-137814: Fix __qualname__ of __annotate__ (#137842) 2026-04-15 21:52:30 -07:00
sysmodule.c gh-149321: Remove lazy_imports=none startup mode (#149389) 2026-05-19 16:01:15 -07:00
thread.c gh-134745: Use "pymutex" for sys.thread_info on Windows (#141140) 2025-11-06 16:10:39 +01:00
thread_nt.h gh-134745: Change PyThread_allocate_lock() implementation to PyMutex (#134747) 2025-05-30 10:15:47 +00:00
thread_pthread.h gh-137884: Added threading.get_native_id() on Illumos/Solaris (GH-137927) 2025-08-20 17:10:44 +00:00
thread_pthread_stubs.h
tier2_engine.md
traceback.c gh-145559: Add PyUnstable_DumpTraceback() and PyUnstable_DumpTracebackThreads() (#148145) 2026-05-06 15:01:12 +00:00
tracemalloc.c gh-144763: Don't detach the GIL in tracemalloc (#144779) 2026-02-18 15:57:48 +00:00
uniqueid.c
vm-state.md gh-133079: Remove Py_C_RECURSION_LIMIT & PyThreadState.c_recursion_remaining (GH-133080) 2025-04-29 12:56:20 +02:00

Miscellaneous source files for the main Python shared library