On Wed, 22 Jun 2016, Zhaoyang Huang wrote: > On 20 June 2016 at 09:14, Zhaoyang Huang <zhaoyang.hu...@linaro.org> wrote: > > On 17 June 2016 at 19:50, Thomas Gleixner <t...@linutronix.de> wrote: > >> On Fri, 17 Jun 2016, Zhaoyang Huang wrote: > >>> On 17 June 2016 at 17:27, Thomas Gleixner <t...@linutronix.de> wrote: > >>> > On Fri, 17 Jun 2016, Zhaoyang Huang wrote: > >>> >> There should be a gap between tick_nohz_idle_enter and > >>> >> tick_nohz_get_sleep_length when idle, which will cause the > >>> >> sleep_length is not very precised. Change it in this patch. > >>> > > >>> > What kind of imprecision are we talking about? Seconds, nanoseconds or > >>> > lightyears? > >>> > > >>> > Your changelog lacks any form of useful information. > >>> > > >>> sorry for the confusion. The imprecision can be caused by, for > >>> example, the callback function registered for CPU_PM_ENTER, which may > >>> consume a period of time within the 'idle' time. Besides, I also > >>> wonder why not calc the 'sleep_length' in the > >>> tick_nohz_get_sleep_length? This value is calculated at very > >>> beginning of the idle in current approach. > >> > >> You still are not explaining the amount of imprecision. What are you > >> talking > >> about and is it really relevant in any way or are you just trying to solve > >> an > >> acedemic issue? > >> > >> Thanks, > >> > >> tglx > >> > > Indeed, it is depends on how deep the idle state is. For example, the > > lightest level for my current platform is 1100us, which sums up the > > entry,exit and min time. However, there is a callback which do memory > > management(merge the same page) in CPU_PM_ENTER will consume at least > > 500us. In current approach, it cause 50% imprecision for this level of > > idle state. > Hi Thomas, > Any further comments on that?
Yes. Why on earth do we have a 500us callback in the idle entry path? That's just insane and needs to be fixed. Thanks, tglx