lkml.org 
[lkml]   [2013]   [Sep]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [tip:timers/urgent] sched/cputime: Do not scale when utime == 0
On Wed, Sep 04, 2013 at 07:37:22AM -0700, tip-bot for Stanislaw Gruszka wrote:
> Commit-ID: 5a8e01f8fa51f5cbce8f37acc050eb2319d12956
> Gitweb: http://git.kernel.org/tip/5a8e01f8fa51f5cbce8f37acc050eb2319d12956
> Author: Stanislaw Gruszka <sgruszka@redhat.com>
> AuthorDate: Wed, 4 Sep 2013 15:16:03 +0200
> Committer: Ingo Molnar <mingo@kernel.org>
> CommitDate: Wed, 4 Sep 2013 16:31:25 +0200
>
> sched/cputime: Do not scale when utime == 0
>
> scale_stime() silently assumes that stime < rtime, otherwise
> when stime == rtime and both values are big enough (operations
> on them do not fit in 32 bits), the resulting scaling stime can
> be bigger than rtime. In consequence utime = rtime - stime
> results in negative value.
>
> User space visible symptoms of the bug are overflowed TIME
> values on ps/top, for example:
>
> $ ps aux | grep rcu
> root 8 0.0 0.0 0 0 ? S 12:42 0:00 [rcuc/0]
> root 9 0.0 0.0 0 0 ? S 12:42 0:00 [rcub/0]
> root 10 62422329 0.0 0 0 ? R 12:42 21114581:37 [rcu_preempt]
> root 11 0.1 0.0 0 0 ? S 12:42 0:02 [rcuop/0]
> root 12 62422329 0.0 0 0 ? S 12:42 21114581:35 [rcuop/1]
> root 10 62422329 0.0 0 0 ? R 12:42 21114581:37 [rcu_preempt]
>
> or overflowed utime values read directly from /proc/$PID/stat
>
> Reference:
>
> https://lkml.org/lkml/2013/8/20/259
>
> Reported-and-tested-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
> Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
> Cc: stable@vger.kernel.org
> Cc: Frederic Weisbecker <fweisbec@gmail.com>
> Cc: Peter Zijlstra <peterz@infradead.org>
> Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
> Cc: Borislav Petkov <bp@alien8.de>
> Link: http://lkml.kernel.org/r/20130904131602.GC2564@redhat.com
> Signed-off-by: Ingo Molnar <mingo@kernel.org>

Thanks a lot guys!


\
 
 \ /
  Last update: 2013-09-04 18:01    [W:0.563 / U:0.112 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site