cpython/Python
Sam Gross 6ea4f842fb
[3.14] gh-144438: Fix false sharing between QSBR and tlbc_index (gh-144554) (#144923)
Align the QSBR thread state array to a 64-byte cache line boundary
and add padding at the end of _PyThreadStateImpl. Depending on heap
layout, the QSBR array could end up sharing a cache line with a
thread's tlbc_index, causing QSBR quiescent state updates to contend
with reads of tlbc_index in RESUME_CHECK. This is sensitive to
earlier allocations during interpreter init and can appear or
disappear with seemingly unrelated changes.

Either change alone is sufficient to fix the specific issue, but both
are worthwhile to avoid similar problems in the future.

(cherry picked from commit 6577d870b0)
2026-03-31 19:20:24 +00:00
..
clinic [3.14] gh-139748: fix leaks in AC error paths when using unicode FS-b… (#139789) 2025-10-08 22:16:21 +05:30
frozen_modules gh-97669: Create Tools/build/ directory (#97963) 2022-10-17 12:01:00 +02:00
_contextvars.c gh-128384: Use a context variable for warnings.catch_warnings (gh-130010) 2025-04-09 16:18:54 -07:00
_warnings.c [3.14] gh-139640: Fix swallowing syntax warnings in different modules (GH-139755) (GH-140117) 2025-10-14 15:56:01 +00:00
asdl.c bpo-43244: Remove ast.h, asdl.h, Python-ast.h headers (GH-24933) 2021-03-23 20:47:40 +01:00
asm_trampoline.S [3.14] gh-136541: Fix several problems of perf trampolines in x86_64 and aarch64 (GH-136500) (#136544) 2025-07-11 14:06:19 +00:00
assemble.c gh-87859: Track Code Object Local Kinds For Arguments (gh-132980) 2025-04-29 02:21:47 +00:00
ast.c gh-132661: Implement PEP 750 (#132662) 2025-04-30 11:46:41 +02:00
ast_preprocess.c [3.14] gh-131927: Do not emit PEP 765 warnings in ast.parse() (GH-139642) (GH-140786) 2025-10-30 11:25:34 +00:00
ast_unparse.c [3.14] gh-132661: Disallow Template/str concatenation after PEP 750 spec update (#135996) (#136901) 2025-07-21 17:34:54 +02:00
bltinmodule.c [3.14] gh-146615: Fix format specifiers in Python/ directory (GH-146619) (GH-146650) 2026-03-31 08:25:07 +00:00
bootstrap_hash.c GH-131238: Core header refactor (GH-131250) 2025-03-17 09:19:04 +00:00
brc.c Fix typos in documentation and comments (#119763) 2024-06-04 10:22:22 +00:00
bytecodes.c [3.14] gh-145779: Improve classmethod/staticmethod scaling in free-threaded build (gh-145826) (#146088) 2026-03-19 10:49:12 -04:00
ceval.c [3.14] gh-146615: Fix format specifiers in Python/ directory (GH-146619) (GH-146650) 2026-03-31 08:25:07 +00:00
ceval_gil.c [3.14] GH-133136: Revise QSBR to reduce excess memory held (gh-135473) (#135912) 2025-07-08 10:58:01 -07:00
ceval_macros.h [3.14] gh-140104: Set next_instr properly in the JIT during exceptions (GH-140233) (GH-141495) 2025-11-13 18:47:25 +00:00
codecs.c [3.14] gh-58124: Avoid CP_UTF8 in UnicodeDecodeError (GH-137415) (#137460) 2025-10-07 19:39:31 +02:00
codegen.c [3.14] gh-145187: Fix crash on invalid type parameter bound expression in conditional block (GH-145188) (#145196) 2026-02-24 21:13:08 +00:00
compile.c [3.14] Fix dunder name typo in compiler code comment (GH-143374) (#143386) 2026-01-10 12:21:09 +05:30
condvar.h gh-104530: Enable native Win32 condition variables by default (GH-104531) 2024-02-02 13:50:51 +00:00
config_common.h gh-76785: Add PyInterpreterConfig Helpers (gh-117170) 2024-04-02 20:35:52 +00:00
context.c [3.14] gh-142873: Do not check for PyContextVar_CheckExact twice in PyContextVar_Set (GH-142874) (#142893) 2025-12-17 18:28:37 +00:00
critical_section.c [3.14] gh-144513: Skip critical section locking during stop-the-world (gh-144524) (#145570) 2026-03-06 12:00:17 -05:00
crossinterp.c [3.14] gh-145376: Fix various reference leaks (GH-145377) (GH-145712) 2026-03-10 16:31:02 +01:00
crossinterp_data_lookup.h [3.14] gh-146615: Fix format specifiers in Python/ directory (GH-146619) (GH-146650) 2026-03-31 08:25:07 +00:00
crossinterp_exceptions.h [3.14] gh-132775: Clean Up Cross-Interpreter Error Handling (gh-135492) 2025-06-14 02:08:25 +00:00
dtoa.c gh-131238: Add explicit includes to pycore headers (#131257) 2025-03-17 12:32:43 +01:00
dup2.c gh-108765: Python.h no longer includes <unistd.h> (#108783) 2023-09-02 16:50:18 +02:00
dynamic_annotations.c
dynload_hpux.c gh-88402: Add new sysconfig variables on Windows (GH-110049) 2023-10-04 22:50:29 +00:00
dynload_shlib.c gh-131238: Remove more includes from pycore_interp.h (#131480) 2025-03-19 23:01:32 +01:00
dynload_stub.c gh-88402: Add new sysconfig variables on Windows (GH-110049) 2023-10-04 22:50:29 +00:00
dynload_win.c gh-131238: Remove pycore_runtime.h from pycore_pystate.h (#131356) 2025-03-19 17:33:24 +01:00
emscripten_signal.c GH-108614: Unbreak emscripten build (GH-109132) 2023-09-08 17:54:45 +01:00
emscripten_syscalls.c [3.14] gh-124621: Emscripten: Support pyrepl in browser (GH-136931) (GH-136988) 2025-07-22 15:04:11 +02:00
emscripten_trampoline.c [3.14] gh-145037: Fix Emscripten trampoline with emcc >= 4.0.19 (GH-145038) (#145283) 2026-02-27 08:55:59 +08:00
emscripten_trampoline_inner.c [3.14] gh-128627: Use __builtin_wasm_test_function_pointer_signature for Emscripten trampoline (GH-137470) (#139039) 2025-09-17 17:21:01 +01:00
errors.c [3.14] gh-146480: Override the exception in _PyErr_SetKeyError() (GH-146486) (#146511) 2026-03-27 11:48:29 +00:00
executor_cases.c.h [3.14] gh-145779: Improve classmethod/staticmethod scaling in free-threaded build (gh-145826) (#146088) 2026-03-19 10:49:12 -04:00
fileutils.c gh-124476: Fix decoding from the locale encoding in the C.UTF-8 locale (GH-132477) 2025-04-14 21:32:41 +03:00
flowgraph.c [3.14] gh-126835: Fix _PY_IS_SMALL_INT() macro (GH-146631) (#147187) 2026-03-31 13:27:11 +00:00
formatter_unicode.c GH-131238: Core header refactor (GH-131250) 2025-03-17 09:19:04 +00:00
frame.c [3.14] gh-144446: Fix some frame object thread-safety issues (gh-144479) (#144546) 2026-02-06 15:25:36 +00:00
frozen.c GH-89435: os.path should not be a frozen module (#126924) 2024-11-22 18:50:30 +00:00
frozenmain.c gh-105716: Fix _PyInterpreterState_IsRunningMain() For Embedders (gh-117140) 2024-03-21 18:20:20 -06:00
future.c gh-126139: Improve error message location for future statement with unknown feature (#126140) 2024-10-29 23:57:59 +00:00
gc.c [3.14] GH-91636: Clear weakrefs created by finalizers. (GH-136401) (#144444) 2026-03-12 14:10:29 +02:00
gc_free_threading.c [3.14] GH-91636: Clear weakrefs created by finalizers. (GH-136401) (#144444) 2026-03-12 14:10:29 +02:00
gc_gil.c gh-100240: Use a consistent implementation for freelists (#121934) 2024-07-22 12:08:27 -04:00
generated_cases.c.h [3.14] gh-145779: Improve classmethod/staticmethod scaling in free-threaded build (gh-145826) (#146088) 2026-03-19 10:49:12 -04:00
getargs.c [3.14] gh-146615: Fix format specifiers in Python/ directory (GH-146619) (GH-146650) 2026-03-31 08:25:07 +00:00
getcompiler.c closes bpo-43278: remove unnecessary leading '\n' from COMPILER when build with GCC/Clang (GH-24606) 2021-02-25 20:24:21 -08:00
getcopyright.c gh-126133: Only use start year in PSF copyright, remove end years (#126236) 2024-11-12 15:59:19 +02:00
getopt.c GH-133336: Remove reserved `-J` flag for Jython (#133444) 2025-05-05 15:09:19 +00:00
getplatform.c
getversion.c [3.14] gh-119132: Remove "experimental" tag from the CPython free-threading. (gh-135550) (gh-135565) 2025-06-16 14:58:14 +00:00
hamt.c [3.14] gh-142829: Fix use-after-free in Context.__eq__ via re-entrant ContextVar.set (GH-142905) (#143627) 2026-01-10 12:21:37 +05:30
hashtable.c gh-111545: Add Py_HashPointer() function (#112096) 2023-12-06 15:09:22 +01:00
import.c [3.14] gh-144601: Avoid sharing exception objects raised in a PyInit function across multiple interpreters (GH-144602) (GH-144633) 2026-02-16 10:37:46 -05:00
importdl.c [3.14] gh-140011: Delete importdl assertion that prevents importing embedded modules from packages (GH-141605) (#141986) 2025-11-28 23:30:57 -08:00
index_pool.c [3.14] gh-91048: Refactor and optimize remote debugging module (#134652) (#134673) 2025-05-25 22:10:20 +00:00
initconfig.c [3.14] gh-146244: Fix initconfig.c SET_ITEM macro leaks dict on expression failure (GH-146246) (GH-146432) 2026-03-27 02:37:53 +00:00
instruction_sequence.c GH-124715: Move trashcan mechanism into Py_Dealloc (GH-132280) 2025-04-30 11:37:53 +01:00
instrumentation.c [3.14] gh-120158: Fix inconsistent monitoring state when setting events too frequently (gh-141845) (gh-141879) 2025-11-23 15:31:56 +00:00
interpconfig.c [3.14] gh-146615: Fix format specifiers in Python/ directory (GH-146619) (GH-146650) 2026-03-31 08:25:07 +00:00
intrinsics.c Get rid of ERROR_IF's "label" parameter (GH-132654) 2025-04-29 17:21:53 -07:00
jit.c [3.14] GH-134291: Support older macOS deployment targets for JIT builds (GH-137211) (#137701) 2025-08-13 13:37:01 +03:00
legacy_tracing.c [3.14] gh-137400: Fix thread-safety issues when profiling all threads (gh-137518) (gh-137730) 2025-10-07 13:45:23 -04:00
lock.c [3.14] gh-134009: Expose PyMutex_IsLocked in the public C API (gh-134365) (#136971) 2025-07-22 12:48:08 +03:00
marshal.c [3.14] gh-106287: Do not write objects after an unmarshalling error (GH-132715) (GH-143832) 2026-01-14 11:52:20 +00:00
modsupport.c gh-132909: handle overflow for 'K' format in do_mkvalue (#132911) 2025-04-25 11:02:57 +00:00
mysnprintf.c Add a warning message about PyOS_snprintf (#95993) 2022-10-07 11:49:53 -07:00
mystrtoul.c gh-108765: Python.h no longer includes <ctype.h> (#108831) 2023-09-03 18:54:27 +02:00
object_stack.c gh-100240: Use a consistent implementation for freelists (#121934) 2024-07-22 12:08:27 -04:00
opcode_targets.h gh-100239: specialize BINARY_OP/SUBSCR for list-slice (#132626) 2025-05-01 10:28:52 +00:00
optimizer.c [3.14] gh-137007: Track executor before any possible deallocations (GH-137016) (GH-142541) 2025-12-10 22:54:28 +00:00
optimizer_analysis.c [3.14] gh-137728 gh-137762: Fix bugs in the JIT with many local variables (GH-137764) (#137999) 2025-08-21 17:00:05 +03:00
optimizer_bytecodes.c [3.14] gh-135608: Add a null check for attribute promotion to fix a JIT crash (GH-135613) (#135739) 2025-06-20 15:24:25 +08:00
optimizer_cases.c.h [3.14] gh-135608: Add a null check for attribute promotion to fix a JIT crash (GH-135613) (#135739) 2025-06-20 15:24:25 +08:00
optimizer_symbols.c [3.14] gh-137728 gh-137762: Fix bugs in the JIT with many local variables (GH-137764) (#137999) 2025-08-21 17:00:05 +03:00
parking_lot.c [3.14] gh-137433: Fix deadlock with stop-the-world and daemon threads (gh-137735) (GH-138965) 2025-10-07 20:46:52 +02:00
pathconfig.c gh-111924: Fix data races when swapping allocators (gh-130287) 2025-02-20 11:31:15 -05:00
perf_jit_trampoline.c [3.14] gh-144194: Fix mmap failure check in perf_jit_trampoline.c (GH-143713) (#144301) 2026-01-28 13:57:19 +00:00
perf_trampoline.c [3.14] gh-144766: Fix a crash in fork child process when perf support is enabled. (GH-144795) (#144816) 2026-02-14 12:09:00 +00:00
preconfig.c [3.14] gh-145092: Fix compiler warning for memchr() and wcschr() returning const pointer (GH-145093) (GH-145102) 2026-02-22 08:28:17 +00:00
pyarena.c Chore: Fix typo in pyarena.c (#126527) 2024-11-07 16:37:41 +01:00
pyctype.c
pyfpe.c bpo-46315: Add ifdef HAVE_ feature checks for WASI compatibility (GH-30507) 2022-01-13 09:46:04 +01:00
pyhash.c gh-122854: Add Py_HashBuffer() function (#122855) 2024-08-30 15:42:27 +00:00
pylifecycle.c [3.14] gh-144307: Fix a reference leak during module teardown (GH-144308) (GH-144327) 2026-01-29 19:19:14 +00:00
pymath.c bpo-45440: Remove pymath.c fallbacks (GH-28977) 2021-10-15 19:45:34 +02:00
pystate.c [3.14] gh-142183: Cache one datachunk per tstate to prevent alloc/dealloc thrashing (GH-145789) (#145828) 2026-03-18 16:47:36 +01:00
pystrcmp.c gh-108767: Replace ctype.h functions with pyctype.h functions (#108772) 2023-09-01 18:36:53 +02:00
pystrhex.c [3.14] gh-141370: Fix undefined behavior when using Py_ABS() (GH-141548) (GH-142301) 2025-12-12 15:11:43 +00:00
pystrtod.c gh-120026: soft deprecate Py_HUGE_VAL macro (#120027) 2024-11-01 22:04:31 +00:00
Python-ast.c [3.14] gh-144169: Fix three crashes in AST objects with non-str kwargs (GH-144178) (#144227) 2026-01-26 12:14:39 +00:00
Python-tokenize.c gh-111178: Fix function signatures for test_types (#131455) 2025-03-19 13:46:17 +00:00
pythonrun.c [3.14] gh-146615: Fix format specifiers in Python/ directory (GH-146619) (GH-146650) 2026-03-31 08:25:07 +00:00
pytime.c gh-131238: Remove pycore_runtime.h from pycore_pystate.h (#131356) 2025-03-19 17:33:24 +01:00
qsbr.c [3.14] gh-144438: Fix false sharing between QSBR and tlbc_index (gh-144554) (#144923) 2026-03-31 19:20:24 +00:00
README
remote_debug.h [3.14] gh-144316: Fix missing exception in _remote_debugging with debug=False (GH-144442) (#145280) 2026-02-26 22:39:48 +00:00
remote_debugging.c [3.14] Fix compiler warnings in remote debugging (#141060) (#141067) 2025-11-05 19:49:39 +00:00
specialize.c [3.14] gh-139525: Don't specialize functions which have a modified vectorcall (GH-139524) (#139709) 2025-10-08 09:13:34 -07:00
stackrefs.c [3.14] gh-133590: ensure that TableEntry.linenumber_borrow is initialized (GH-133681) (#133872) 2025-05-11 08:44:22 +00:00
stdlib_module_names.h GH-91048: Minor fixes for `_remotedebugging & rename to _remote_debugging` (#133398) 2025-05-05 02:30:14 +02:00
structmember.c gh-132685: fix thread safety of PyMember_GetOne with _Py_T_OBJECT (#132690) 2025-04-18 21:03:42 +05:30
suggestions.c GH-131238: Core header refactor (GH-131250) 2025-03-17 09:19:04 +00:00
symtable.c [3.14] gh-145701: Fix __classdict__ & __conditional_annotations__ in class-scope inlined comprehensions (GH-145702) (#145710) 2026-03-09 20:26:52 +00:00
sysmodule.c [3.14] gh-145376: Fix various reference leaks (GH-145377) (GH-145712) 2026-03-10 16:31:02 +01:00
thread.c gh-131238: Add explicit includes to pycore headers (#131257) 2025-03-17 12:32:43 +01:00
thread_nt.h GH-131296: Add missing UNREACHABLE mark in thread_nt.h (GH-131589) 2025-03-31 20:28:35 +01:00
thread_pthread.h gh-130115: fix thread identifiers for 32-bit musl (#130391) 2025-04-04 16:31:37 +02:00
thread_pthread_stubs.h gh-125161: return non zero value in pthread_self on wasi (#125303) 2024-10-13 20:59:41 +05:30
tier2_engine.md Docs: fix spelling of the word 'transferring' (#116641) 2024-03-13 23:53:32 +01:00
traceback.c [3.14] gh-145792: Fix incorrect alloca allocation size in traceback.c (GH-145814) (#145909) 2026-03-13 12:45:18 +00:00
tracemalloc.c [3.14] gh-144763: Fix race conditions in tracemalloc (#144779) (#144965) 2026-02-18 20:55:38 +01:00
uniqueid.c gh-128923: Use zero to indicate unassigned unique id (#128925) 2025-01-17 16:42:27 +01:00
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