Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'timers-urgent-2020-12-27' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull timer fixes from Ingo Molnar:
"Update/fix two CPU sanity checks in the hotplug and the boot code, and
fix a typo in the Kconfig help text.

[ Context: the first two commits are the result of an ongoing
annotation+review work of (intentional) tick_do_timer_cpu() data
races reported by KCSAN, but the annotations aren't fully cooked
yet ]"

* tag 'timers-urgent-2020-12-27' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
timekeeping: Fix spelling mistake in Kconfig "fullfill" -> "fulfill"
tick/sched: Remove bogus boot "safety" check
tick: Remove pointless cpu valid check in hotplug code

+4 -15
+1 -1
kernel/time/Kconfig
··· 141 141 dynticks working. 142 142 143 143 This option stands for testing when an arch implements the 144 - context tracking backend but doesn't yet fullfill all the 144 + context tracking backend but doesn't yet fulfill all the 145 145 requirements to make the full dynticks feature working. 146 146 Without the full dynticks, there is no way to test the support 147 147 for context tracking and the subsystems that rely on it: RCU
+3 -7
kernel/time/tick-common.c
··· 407 407 /* 408 408 * Transfer the do_timer job away from a dying cpu. 409 409 * 410 - * Called with interrupts disabled. Not locking required. If 410 + * Called with interrupts disabled. No locking required. If 411 411 * tick_do_timer_cpu is owned by this cpu, nothing can change it. 412 412 */ 413 413 void tick_handover_do_timer(void) 414 414 { 415 - if (tick_do_timer_cpu == smp_processor_id()) { 416 - int cpu = cpumask_first(cpu_online_mask); 417 - 418 - tick_do_timer_cpu = (cpu < nr_cpu_ids) ? cpu : 419 - TICK_DO_TIMER_NONE; 420 - } 415 + if (tick_do_timer_cpu == smp_processor_id()) 416 + tick_do_timer_cpu = cpumask_first(cpu_online_mask); 421 417 } 422 418 423 419 /*
-7
kernel/time/tick-sched.c
··· 989 989 */ 990 990 if (tick_do_timer_cpu == cpu) 991 991 return false; 992 - /* 993 - * Boot safety: make sure the timekeeping duty has been 994 - * assigned before entering dyntick-idle mode, 995 - * tick_do_timer_cpu is TICK_DO_TIMER_BOOT 996 - */ 997 - if (unlikely(tick_do_timer_cpu == TICK_DO_TIMER_BOOT)) 998 - return false; 999 992 1000 993 /* Should not happen for nohz-full */ 1001 994 if (WARN_ON_ONCE(tick_do_timer_cpu == TICK_DO_TIMER_NONE))