mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH 0/2] timer: Fix missing dynticks kick
@ 2014-06-12 19:33 Frederic Weisbecker
  2014-06-12 19:34 ` [PATCH 1/2] timer: Store cpu-number in 'struct tvec_base' Frederic Weisbecker
  2014-06-12 19:34 ` [PATCH 2/2] timer: Kick dynticks targets on mod_timer*() calls Frederic Weisbecker
  0 siblings, 2 replies; 3+ messages in thread
From: Frederic Weisbecker @ 2014-06-12 19:33 UTC (permalink / raw)
  To: Thomas Gleixner; +Cc: LKML, Frederic Weisbecker, Viresh Kumar

Thomas,

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.

git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks.git
	timers/missing-kick

Thanks,
	Frederic
---

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(-)

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2014-06-12 19:34 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-06-12 19:33 [PATCH 0/2] timer: Fix missing dynticks kick Frederic Weisbecker
2014-06-12 19:34 ` [PATCH 1/2] timer: Store cpu-number in 'struct tvec_base' Frederic Weisbecker
2014-06-12 19:34 ` [PATCH 2/2] timer: Kick dynticks targets on mod_timer*() calls Frederic Weisbecker

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®