Messages in this thread | | | Date | Fri, 23 May 2008 15:49:51 +0530 | From | Srivatsa Vaddagiri <> | Subject | Re: fair group scheduler not so fair? |
| |
On Fri, May 23, 2008 at 11:39:21AM +0200, Peter Zijlstra wrote: > On Fri, 2008-05-23 at 15:12 +0530, Srivatsa Vaddagiri wrote: > > On Thu, May 22, 2008 at 01:18:33PM -0700, Li, Tong N wrote: > > > Peter, > > > > > > I didn't look at your patches, but I thought you were flattening group > > > weights down to task-level so that the scheduler only looks at per-task > > > weights. > > > > Wouldnt that require task weight readjustment upon every fork/exit? > > If you were to do that - yes that would get you into some very serious > trouble. > > The route I've chosen is to basically recompute it every time I need the > weight. So every time I use a weight, I do:
and which are those points when "you need the weight"?
Basically here's what I had in mind:
Group A shares = 1024 # of tasks in group A = 1 (T0)
So T0 weight can be 1024.
T0 now forks 1000 children. Ideally now, T0.weight = T1.weight = .... = T999.weight = 1024/1000
If we don't change each task's weight like this, then group A will cumulatively get more share than it deserves.
Are you saying you will change each task's weight lazily? If so how?
-- Regards, vatsa
| |