Messages in this thread | | | From | Nick Piggin <> | Subject | Re: [PATCH 2/5] sched: pull only one task during NEWIDLE balancing to limit critical section | Date | Tue, 26 Aug 2008 16:21:33 +1000 |
| |
On Tuesday 26 August 2008 06:15, Gregory Haskins wrote: > git-id c4acb2c0669c5c5c9b28e9d02a34b5c67edf7092 attempted to limit > newidle critical section length by stopping after at least one task > was moved. Further investigation has shown that there are other > paths nested further inside the algorithm which still remain that allow > long latencies to occur with newidle balancing. This patch applies > the same technique inside balance_tasks() to limit the duration of > this optional balancing operation. > > Signed-off-by: Gregory Haskins <ghaskins@novell.com> > CC: Nick Piggin <npiggin@suse.de>
Hmm, this (andc4acb2c0669c5c5c9b28e9d02a34b5c67edf7092) still could increase the amount of work to do significantly for workloads where the CPU is going idle and pulling tasks over frequently. I don't really like either of them too much.
Maybe increasing the limit would effectively amortize most of the problem (say, limit to move 16 tasks at most).
| |