[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CADDfC=p-kyGbOzZWJQaaHhshB35NtwZig0ok9HRiWkhBritfBA@mail.gmail.com>
Date: Thu, 21 Jul 2016 20:24:07 -0700
From: Gaurav Poothia <gaurav.poothia@...il.com>
To: Mike Galbraith <umgwanakikbuti@...il.com>
Cc: linux-kernel@...r.kernel.org, peterz@...radead.org,
mingo@...hat.com
Subject: Re: Question about group scheduler cpu shares
Thanks Mike.
So if I understand you right - tasks on interior nodes get their
weight from task's nice level and not from some cpu.share setting.
Two followups:
1.What is the function that translates from various nice levels to
weight i.e. nice(0) == 1024 how to translate for other levels
2.How does that work when an interior node has multiple tasks? So if I
added tasks E and F with difference nice levels to Group 1 task list
how would the math work?
Appreciate the help -thanks!
On Thu, Jul 21, 2016 at 7:51 PM, Mike Galbraith
<umgwanakikbuti@...il.com> wrote:
> On Thu, 2016-07-21 at 18:18 -0700, Gaurav Poothia wrote:
>
>> > ROOT
>> > >
>> > + -Group1(3072)
>> > > |
>> > > +- A(2048)
>> > > |
>> > > +- B(1024)
>> > >
>> > +- Group2(2048)
>> > |
>> > +-C(1024)
>> > |
>> > +-D(1024)
>> >
>
>> > Say I add a task E to Group1's task list (note that is an interior aka
>> > non-leaf node)
>> > How does the CPU split change between A, B and E.
>> > AFAICT there is no cgroup cpu subsystem knob to weight tasks on an
>> > interior node against the tasks in that node's children
>
> A, B and E are all entities with a weight, so just plug E into your
> graph. Its weight is determined by nice level, which is what cgroups
> should have done instead of inventing shares IMHO. 1024 == nice(0).
>
> -Mike
--
Kiva.org - Loans That Change Lives
Powered by blists - more mailing lists