Skip to content

Commit a22ea73

Browse files
committed
Merge tag 'sched-urgent-2025-03-14' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull scheduler fix from Ingo Molnar: "Fix a sleeping-while-atomic bug caused by a recent optimization utilizing static keys that didn't consider that the static_key_disable() call could be triggered in atomic context. Revert the optimization" * tag 'sched-urgent-2025-03-14' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: sched/clock: Don't define sched_clock_irqtime as static key
2 parents 28c5099 + f3fa0e4 commit a22ea73

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

kernel/sched/cputime.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@
99

1010
#ifdef CONFIG_IRQ_TIME_ACCOUNTING
1111

12-
DEFINE_STATIC_KEY_FALSE(sched_clock_irqtime);
13-
1412
/*
1513
* There are no locks covering percpu hardirq/softirq time.
1614
* They are only modified in vtime_account, on corresponding CPU
@@ -24,14 +22,16 @@ DEFINE_STATIC_KEY_FALSE(sched_clock_irqtime);
2422
*/
2523
DEFINE_PER_CPU(struct irqtime, cpu_irqtime);
2624

25+
int sched_clock_irqtime;
26+
2727
void enable_sched_clock_irqtime(void)
2828
{
29-
static_branch_enable(&sched_clock_irqtime);
29+
sched_clock_irqtime = 1;
3030
}
3131

3232
void disable_sched_clock_irqtime(void)
3333
{
34-
static_branch_disable(&sched_clock_irqtime);
34+
sched_clock_irqtime = 0;
3535
}
3636

3737
static void irqtime_account_delta(struct irqtime *irqtime, u64 delta,

kernel/sched/sched.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3259,11 +3259,11 @@ struct irqtime {
32593259
};
32603260

32613261
DECLARE_PER_CPU(struct irqtime, cpu_irqtime);
3262-
DECLARE_STATIC_KEY_FALSE(sched_clock_irqtime);
3262+
extern int sched_clock_irqtime;
32633263

32643264
static inline int irqtime_enabled(void)
32653265
{
3266-
return static_branch_likely(&sched_clock_irqtime);
3266+
return sched_clock_irqtime;
32673267
}
32683268

32693269
/*

0 commit comments

Comments
 (0)