Messages in this thread | | | Date | Thu, 19 Apr 2012 10:29:46 +0200 (CEST) | From | Thomas Gleixner <> | Subject | Re: [tip:timers/urgent] tick: Fix oneshot broadcast setup really |
| |
On Wed, 18 Apr 2012, Suresh Siddha wrote: > On Wed, 2012-04-18 at 17:31 +0200, Thomas Gleixner wrote: > From: Suresh Siddha <suresh.b.siddha@intel.com> > Subject: tick: Fix the spurious broadcast timer ticks > > During resume, tick_resume_broadcast() programs the broadcast timer > in oneshot mode unconditionally. On the platforms where broadcast timer > is not really required, this will generate spurious broadcast timer ticks > upon resume. For example, on the always running apic timer platforms with > HPET, I see spurious hpet tick once every ~5minutes (which is the 32-bit > hpet counter wraparound time). > > Similar to boot time, during resume make the oneshot mode setting of > the broadcast clock event device conditional on the state of active broadcast > users. > > Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Sven, Santosh, can you confirm that this works for you on top of the other two patches?
> --- > kernel/time/tick-broadcast.c | 3 ++- > 1 files changed, 2 insertions(+), 1 deletions(-) > > diff --git a/kernel/time/tick-broadcast.c b/kernel/time/tick-broadcast.c > index bf57abd..766cd82 100644 > --- a/kernel/time/tick-broadcast.c > +++ b/kernel/time/tick-broadcast.c > @@ -346,7 +346,8 @@ int tick_resume_broadcast(void) > tick_get_broadcast_mask()); > break; > case TICKDEV_MODE_ONESHOT: > - broadcast = tick_resume_broadcast_oneshot(bc); > + if (!cpumask_empty(tick_get_broadcast_mask())) > + broadcast = tick_resume_broadcast_oneshot(bc); > break; > } > } > > >
| |