From 52e902ccf0178d7a3f26de4bba7922b01c0d4d3c Mon Sep 17 00:00:00 2001 From: Mark Shannon Date: Mon, 23 Oct 2023 14:49:09 +0100 Subject: GH-109369: Add machinery for deoptimizing tier2 executors, both individually and globally. (GH-110384) --- Python/instrumentation.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'Python/instrumentation.c') diff --git a/Python/instrumentation.c b/Python/instrumentation.c index eee1908e503..4bb57a621e3 100644 --- a/Python/instrumentation.c +++ b/Python/instrumentation.c @@ -1582,6 +1582,7 @@ _Py_Instrument(PyCodeObject *code, PyInterpreterState *interp) if (code->co_executors != NULL) { _PyCode_Clear_Executors(code); } + _Py_Executors_InvalidateDependency(interp, code); int code_len = (int)Py_SIZE(code); /* code->_co_firsttraceable >= code_len indicates * that no instrumentation can be inserted. @@ -1803,6 +1804,7 @@ _PyMonitoring_SetEvents(int tool_id, _PyMonitoringEventSet events) return -1; } set_global_version(interp, new_version); + _Py_Executors_InvalidateAll(interp); return instrument_all_executing_code_objects(interp); } @@ -1832,6 +1834,7 @@ _PyMonitoring_SetLocalEvents(PyCodeObject *code, int tool_id, _PyMonitoringEvent /* Force instrumentation update */ code->_co_instrumentation_version -= MONITORING_VERSION_INCREMENT; } + _Py_Executors_InvalidateDependency(interp, code); if (_Py_Instrument(code, interp)) { return -1; } -- cgit v1.2.3