On Sat, 5 Mar 2016, Chris Friesen wrote:

> The callers of steal_account_process_tick() expect it to return
> whether a jiffy should be considered stolen or not.
> 
> Currently the return value of steal_account_process_tick() is in
> units of cputime, which vary between either jiffies or nsecs
> depending on CONFIG_VIRT_CPU_ACCOUNTING_GEN.
> 
> If cputime has nsecs granularity and there is a tiny amount of
> stolen time (a few nsecs, say) then we will consider the entire
> tick stolen and will not account the tick on user/system/idle,
> causing /proc/stats to show invalid data.
> 
> The fix is to change steal_account_process_tick() to accumulate
> the stolen time and only account it once it's worth a jiffy.
> 
> (Thanks to Frederic Weisbecker for suggestions to fix a bug in my
> first version of the patch.)
> 
> Signed-off-by: Chris Friesen <chris.frie...@windriver.com>

Reviewed-by: Thomas Gleixner <t...@linutronix.de>

Reply via email to