[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20130904143148.GA11282@gmail.com>
Date: Wed, 4 Sep 2013 16:31:48 +0200
From: Ingo Molnar <mingo@...nel.org>
To: Stanislaw Gruszka <sgruszka@...hat.com>
Cc: Sergey Senozhatsky <sergey.senozhatsky@...il.com>,
Frederic Weisbecker <fweisbec@...il.com>,
Ingo Molnar <mingo@...hat.com>,
Peter Zijlstra <peterz@...radead.org>,
"Paul E. McKenney" <paulmck@...ux.vnet.ibm.com>,
Borislav Petkov <bp@...en8.de>, linux-kernel@...r.kernel.org
Subject: Re: [PATCH -tip v2] sched/cputime: do not scale when utime == 0
* Stanislaw Gruszka <sgruszka@...hat.com> wrote:
> 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@...il.com>
> Cc: stable@...r.kernel.org
> Signed-off-by: Stanislaw Gruszka <sgruszka@...hat.com>
> ---
> v1 -> v2 : describe user visible symptoms of the bug
>
> kernel/sched/cputime.c | 19 +++++++++++--------
> 1 files changed, 11 insertions(+), 8 deletions(-)
Applied, thanks!
Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists