sched: fix weight calculations
authorMike Galbraith <efault@gmx.de>
Thu, 8 May 2008 15:00:42 +0000 (17:00 +0200)
committerIngo Molnar <mingo@elte.hu>
Thu, 8 May 2008 15:00:42 +0000 (17:00 +0200)
commit46151122e0a2e80e5a6b2889f595e371fe2b600d
tree61ab1993c1a94765327aeba3b36924b88b81e68f
parentbf726eab3711cf192405d21688a4b21e07b6188a
sched: fix weight calculations

The conversion between virtual and real time is as follows:

  dvt = rw/w * dt <=> dt = w/rw * dvt

Since we want the fair sleeper granularity to be in real time, we actually
need to do:

  dvt = - rw/w * l

This bug could be related to the regression reported by Yanmin Zhang:

| Comparing with kernel 2.6.25, sysbench+mysql(oltp, readonly) has lots
| of regressions with 2.6.26-rc1:
|
| 1) 8-core stoakley: 28%;
| 2) 16-core tigerton: 20%;
| 3) Itanium Montvale: 50%.

Reported-by: "Zhang, Yanmin" <yanmin_zhang@linux.intel.com>
Signed-off-by: Mike Galbraith <efault@gmx.de>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
kernel/sched_fair.c