lkml.org 
[lkml]   [2011]   [Nov]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: clocksource.c "margin"
From
Date
On Wed, 2011-11-30 at 19:09 -0500, Yang Honggang(Joseph) wrote:
> Hi John Stultz,
> I'm very sorry to trouble you. A problem puzzled me when I reading your
> code in kernel/time/clocksource.c.
> In the following functions, your said in the comments that >>5 was used
> to leave a margin of 12.5%.
> I don't know how to get the result. I think is should be >> 3 in order
> to leave a margin of 12.5%.
> The operation of >> 5 only left 3.125% margin.
>
> __clocksource_updatefreq_scale
> ...
> sec = (cs->mask - (cs->mask >> 5));
> ...
> clocksource_max_deferment
> ...
> /*
> * To ensure that the clocksource does not wrap whilst we are idle,
> * limit the time the clocksource can be deferred by 12.5%. Please
> * note a margin of 12.5% is used because this can be computed with
> * a shift, versus say 10% which would require division.
> */
> return max_nsecs - (max_nsecs >> 5);
> ...

Indeed. This looks wrong.

Would you like to send a patch in correcting this issue? If not, let me
know and I'll do so.

thanks
-john




\
 
 \ /
  Last update: 2011-11-30 19:47    [W:0.037 / U:0.020 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site