Skip to content

Commit 1942f72

Browse files
committed
nit
1 parent d01f572 commit 1942f72

File tree

1 file changed

+28
-36
lines changed

1 file changed

+28
-36
lines changed

Python/pystate.c

Lines changed: 28 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1439,6 +1439,22 @@ decref_threadstate(_PyThreadStateImpl *tstate)
14391439
}
14401440
}
14411441

1442+
#ifdef _Py_TIER2
1443+
static inline void
1444+
init_jit_metric(uint16_t *target, const char *env_name, uint16_t default_value,
1445+
long min_value, long max_value)
1446+
{
1447+
*target = default_value;
1448+
char *env = Py_GETENV(env_name);
1449+
if (env && *env != '\0') {
1450+
long value = atol(env);
1451+
if (value >= min_value && value <= max_value) {
1452+
*target = (uint16_t)value;
1453+
}
1454+
}
1455+
}
1456+
#endif
1457+
14421458
/* Get the thread state to a minimal consistent state.
14431459
Further init happens in pylifecycle.c before it can be used.
14441460
All fields not initialized here are expected to be zeroed out,
@@ -1526,42 +1542,18 @@ init_threadstate(_PyThreadStateImpl *_tstate,
15261542
_tstate->asyncio_running_task = NULL;
15271543
#ifdef _Py_TIER2
15281544
// Initialize JIT metrics from environment variables
1529-
_tstate->jit_metrics.jump_backward_initial_value = JUMP_BACKWARD_INITIAL_VALUE;
1530-
_tstate->jit_metrics.jump_backward_initial_backoff = JUMP_BACKWARD_INITIAL_BACKOFF;
1531-
_tstate->jit_metrics.side_exit_initial_value = SIDE_EXIT_INITIAL_VALUE;
1532-
_tstate->jit_metrics.side_exit_initial_backoff = SIDE_EXIT_INITIAL_BACKOFF;
1533-
1534-
char *env = Py_GETENV("PYTHON_JIT_JUMP_BACKWARD_INITIAL_VALUE");
1535-
if (env && *env != '\0') {
1536-
long value = atol(env);
1537-
if (value > 0 && value <= MAX_VALUE) {
1538-
_tstate->jit_metrics.jump_backward_initial_value = (uint16_t)value;
1539-
}
1540-
}
1541-
1542-
env = Py_GETENV("PYTHON_JIT_JUMP_BACKWARD_INITIAL_BACKOFF");
1543-
if (env && *env != '\0') {
1544-
long value = atol(env);
1545-
if (value >= 0 && value <= MAX_BACKOFF) {
1546-
_tstate->jit_metrics.jump_backward_initial_backoff = (uint16_t)value;
1547-
}
1548-
}
1549-
1550-
env = Py_GETENV("PYTHON_JIT_SIDE_EXIT_INITIAL_VALUE");
1551-
if (env && *env != '\0') {
1552-
long value = atol(env);
1553-
if (value > 0 && value <= MAX_VALUE) {
1554-
_tstate->jit_metrics.side_exit_initial_value = (uint16_t)value;
1555-
}
1556-
}
1557-
1558-
env = Py_GETENV("PYTHON_JIT_SIDE_EXIT_INITIAL_BACKOFF");
1559-
if (env && *env != '\0') {
1560-
long value = atol(env);
1561-
if (value >= 0 && value <= MAX_BACKOFF) {
1562-
_tstate->jit_metrics.side_exit_initial_backoff = (uint16_t)value;
1563-
}
1564-
}
1545+
init_jit_metric(&_tstate->jit_metrics.jump_backward_initial_value,
1546+
"PYTHON_JIT_JUMP_BACKWARD_INITIAL_VALUE",
1547+
JUMP_BACKWARD_INITIAL_VALUE, 1, MAX_VALUE);
1548+
init_jit_metric(&_tstate->jit_metrics.jump_backward_initial_backoff,
1549+
"PYTHON_JIT_JUMP_BACKWARD_INITIAL_BACKOFF",
1550+
JUMP_BACKWARD_INITIAL_BACKOFF, 0, MAX_BACKOFF);
1551+
init_jit_metric(&_tstate->jit_metrics.side_exit_initial_value,
1552+
"PYTHON_JIT_SIDE_EXIT_INITIAL_VALUE",
1553+
SIDE_EXIT_INITIAL_VALUE, 1, MAX_VALUE);
1554+
init_jit_metric(&_tstate->jit_metrics.side_exit_initial_backoff,
1555+
"PYTHON_JIT_SIDE_EXIT_INITIAL_BACKOFF",
1556+
SIDE_EXIT_INITIAL_BACKOFF, 0, MAX_BACKOFF);
15651557
_tstate->jit_tracer_state.code_buffer = NULL;
15661558
#endif
15671559
tstate->delete_later = NULL;

0 commit comments

Comments
 (0)