Messages in this thread | | | Subject | Re: PostgreSQL pgbench performance regression in 2.6.23+ | From | Mike Galbraith <> | Date | Fri, 23 May 2008 15:35:33 +0200 |
| |
On Fri, 2008-05-23 at 15:05 +0200, Mike Galbraith wrote: > 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
And without SCHED_BATCH
2.6.26-smp x86_64 1 8417.511252 2 15559.741472 3 23417.911087 4 21982.631084 5 24212.518114 6 21870.640050 8 25178.186022 10 27350.449792 15 27958.758943 20 28011.989131 30 26668.779045 40 24871.625107 50 23687.757456
So the primary low end problem is sync afine wakeups it seems.
-Mike
| |