[lkml]   [2014]   [Jun]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
Subject[PATCH 0/2] timer: Fix missing dynticks kick

Viresh has spotted and fixed an interesting issue. When a timer list
is enqueued or updated on a (idle or full) dynticks target, we kick it
with an IPI.

At least that's what we do on add_timer_on() but the mod_timer*() family
doesn't handle that. I think that's because we had assumptions that
mod_timer() never enqueues to remote idle targets. But that's subject
to subtle races where a CPU can become dynticks-idle between a call to
get_nohz_timer_target() and the time we actually lock the new target.

Moreover we forgot to handle full dynticks targets selected by __mod_timer().

That patchset should fixes all those issues.



Viresh Kumar (2):
timer: Store cpu-number in 'struct tvec_base'
timer: Kick dynticks targets on mod_timer*() calls

kernel/timer.c | 34 ++++++++++++++++++----------------
1 file changed, 18 insertions(+), 16 deletions(-)

 \ /
  Last update: 2014-06-12 21:41    [W:0.034 / U:4.620 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site