Messages in this thread | | | From | Sven Joachim <> | Subject | Re: [tip:timers/urgent] tick: Fix oneshot broadcast setup really | Date | Thu, 19 Apr 2012 12:37:29 +0200 |
| |
Am 19.04.2012 um 10:29 schrieb Thomas Gleixner:
> 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?
Works for me, thanks.
>> --- >> 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; >> } >> }
| |