Merge branch 'sched/core' of git://git.kernel.org/pub/scm/linux/kernel/git/frederic...
authorIngo Molnar <mingo@kernel.org>
Mon, 18 Mar 2013 09:09:31 +0000 (10:09 +0100)
committerIngo Molnar <mingo@kernel.org>
Mon, 18 Mar 2013 09:09:31 +0000 (10:09 +0100)
commite75c8b475e4b1da6bf5b412db9a2ecd7c44188a2
tree082cf1fd56a86ae901cdc39c83ccc3e8f6b8c850
parent1bf08230f745e48fea9c18ee34a73581631fe7c9
parentd9a3c9823a2e6a543eb7807fb3d15d8233817ec5
Merge branch 'sched/core' of git://git./linux/kernel/git/frederic/linux-dynticks into sched/core

Pull CPU runtime stats/accounting fixes from Frederic Weisbecker:

 " Some users are complaining that their threadgroup's runtime accounting
   freezes after a week or so of intense cpu-bound workload. This set tries
   to fix the issue by reducing the risk of multiplication overflow in the
   cputime scaling code. "

Stanislaw Gruszka further explained the historic context and impact of the
bug:

 " Commit 0cf55e1ec08bb5a22e068309e2d8ba1180ab4239 start to use scalling
   for whole thread group, so increase chances of hitting multiplication
   overflow, depending on how many CPUs are on the system.

   We have multiplication utime * rtime for one thread since commit
   b27f03d4bdc145a09fb7b0c0e004b29f1ee555fa.

   Overflow will happen after:

   rtime * utime > 0xffffffffffffffff jiffies

   if thread utilize 100% of CPU time, that gives:

   rtime > sqrt(0xffffffffffffffff) jiffies

   ritme > sqrt(0xffffffffffffffff) / (24 * 60 * 60 * HZ) days

   For HZ 100 it will be 497 days for HZ 1000 it will be 49 days.

   Bug affect only users, who run CPU intensive application for that
   long period. Also they have to be interested on utime,stime values,
   as bug has no other visible effect as making those values incorrect. "

Signed-off-by: Ingo Molnar <mingo@kernel.org>