On Fri, Jul 04, 2014 at 06:03:21PM +0530, Viresh Kumar wrote:
On 4 July 2014 17:43, Frederic Weisbecker fweisbec@gmail.com wrote:
So the patch looks good but I wonder if the changelog is a bit misleading. It fixes the fact that in lowres mode, the tick is rescheduled at every tick.
But after this patch, don't we still have at one remaining spurious tick in this scenario:
tick_nohz_handler() { reprogram next tick } irq_exit() { tick_nohz_stop_sched_tick() { expires = KTIME_MAX; //skip reprogramming, but still have a pending tick } } //useless tick tick_nohz_handle()
Yes, its still there and should have been mentioned clearly in logs.
Yep.
We probably also need a cancel for low-res mode as well.
How do we cancel this? We are programming the clock-event device directly and there is no way to cancel that.
Similar problem stays in hres mode as well. Though we do cancel hrtimer, but we don't cancel/stop clkevt device.
Right, the issue only seem to appear in lowres.
And that will be fixed by ONESHOT_STOPPED series, Kevin has just sent few patches of ->set_dev_mode() stuff.
Makes sense? Or am I too tired staring at tick core this whole day? I probably caught one more issue, would share only after confirming :)
No, that sounds good :)
Note the patch is fine. Just the changelog needs to mention that the issue is only partially fixed.
-- viresh