Re: PostgreSQL pgbench performance regression in 2.6.23+

Mike Galbraith
2008-05-23T13:05:35Z

On Fri, 2008-05-23 at 12:10 +0200, Ingo Molnar wrote:

> if it's other tweaks as well then could you perhaps try to make
> SCHED_BATCH batch more agressively?

Running SCHED_BATCH with only the below put a large dent in the problem.

You can have tl <= current->se.load.weight. Nothing good happens in
either case, at least with this load.

--- kernel/sched_fair.c.org 2008-05-23 14:59:39.000000000 +0200
+++ kernel/sched_fair.c 2008-05-23 14:49:05.000000000 +0200
@@ -1081,7 +1081,7 @@ wake_affine(struct rq *rq, struct sched_
* effect of the currently running task from the load
* of the current CPU:
*/
- if (sync)
+ if (sync && tl > current->se.load.weight)
tl -= current->se.load.weight;

if ((tl <= load && tl + target_load(prev_cpu, idx) <= tl_per_task) ||

2.6.26-smp x86_64
1 9209.503213
2 15792.406916
3 23369.199181
4 23140.108032
5 24556.515470
6 24926.457776
8 26896.607558
10 27350.988396
15 29005.426298
20 28558.267290
30 27002.328374
40 25809.202374
50 24589.478654