Re: [PATCH 19/21] clocksource: Improve comment explaining clocks_calc_max_nsecs()'s 50% safety margin

John Stultz
2015-04-02T18:41:20Z

On Thu, Apr 2, 2015 at 11:34 AM, Peter Zijlstra <peterz@infradead.org> wrote:
> On Thu, Apr 02, 2015 at 10:30:18AM -0700, John Stultz wrote:
>> > Should we make a further note that the tk_fast things rely on this
>> > slack since they're not strongly serialized against this? That is, they
>> > can end up using an older cycle_last value and therefore end up with a
>> > larger delta than other code.
>>
>> Though, even with the tk_fast bits, we expect the update to happen
>> regularly, its just that for the benefit of lock-free access we are ok
>> with the possible slight inconsistencies (in the mono clock) that
>> could happen if we use a slightly stale value mid-update. So I don't
>> think the tk_fast bits are actually relying on the slack any more then
>> the normal timekeeping code relies on the slack to handle slight
>> delays in processing the updates. If we deal with time deltas large
>> enough to cause overflows, or time intervals larger then the hardware
>> can represent, we're sunk in either case. This 50% margin just makes
>> it easier to catch unexpected delays or issues.
>
> Right, so you're saying that even though the fast bits will see slightly
> larger deltas than the normal code, they should still not get anywhere
> near the 50% because we update much more frequently?

Well, they may get to 50% or slightly over (since 50% is the max nohz
idle length), but that's likely rare, and we shouldn't get anywhere
close to real failure edges (100% be it the mult-overflow or hardware
mask limit).

thanks
-john