public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Juri Lelli <juri.lelli@arm.com>
To: Henrik Austad <henrik@austad.us>
Cc: "peterz@infradead.org" <peterz@infradead.org>,
	"luca.abeni@unitn.it" <luca.abeni@unitn.it>,
	"rdunlap@infradead.org" <rdunlap@infradead.org>,
	"mingo@redhat.com" <mingo@redhat.com>,
	"raistlin@linux.it" <raistlin@linux.it>,
	"juri.lelli@gmail.com" <juri.lelli@gmail.com>,
	"linux-doc@vger.kernel.org" <linux-doc@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v3 2/4] Documentation/scheduler/sched-deadline.txt: Rewrite section 4 intro
Date: Thu, 04 Sep 2014 09:57:51 +0100	[thread overview]
Message-ID: <5408298F.5090802@arm.com> (raw)
In-Reply-To: <20140902211439.GB22581@sisyphus.home.austad.us>

Hi Henrik,

On 02/09/14 22:14, Henrik Austad wrote:
> On Thu, Aug 28, 2014 at 11:00:27AM +0100, Juri Lelli wrote:
>> Section 4 intro was still describing the old interface. Rewrite it.
>>
>> Signed-off-by: Juri Lelli <juri.lelli@arm.com>
>> Signed-off-by: Luca Abeni <luca.abeni@unitn.it>
>> Cc: Randy Dunlap <rdunlap@infradead.org>
>> Cc: Peter Zijlstra <peterz@infradead.org>
>> Cc: Ingo Molnar <mingo@redhat.com>
>> Cc: Henrik Austad <henrik@austad.us>
>> Cc: Dario Faggioli <raistlin@linux.it>
>> Cc: Juri Lelli <juri.lelli@gmail.com>
>> Cc: linux-doc@vger.kernel.org
>> Cc: linux-kernel@vger.kernel.org
>> ---
>>  Documentation/scheduler/sched-deadline.txt | 51 +++++++++++++++---------------
>>  1 file changed, 25 insertions(+), 26 deletions(-)
>>
>> diff --git a/Documentation/scheduler/sched-deadline.txt b/Documentation/scheduler/sched-deadline.txt
>> index dce6d63..0aff2d5 100644
>> --- a/Documentation/scheduler/sched-deadline.txt
>> +++ b/Documentation/scheduler/sched-deadline.txt
>> @@ -165,39 +165,38 @@ CONTENTS
>>  
>>   In order for the -deadline scheduling to be effective and useful, it is
>>   important to have some method to keep the allocation of the available CPU
>> - bandwidth to the tasks under control.
>> - This is usually called "admission control" and if it is not performed at all,
>> - no guarantee can be given on the actual scheduling of the -deadline tasks.
>> -
>> - Since when RT-throttling has been introduced each task group has a bandwidth
>> - associated, calculated as a certain amount of runtime over a period.
>> - Moreover, to make it possible to manipulate such bandwidth, readable/writable
>> - controls have been added to both procfs (for system wide settings) and cgroupfs
>> - (for per-group settings).
>> - Therefore, the same interface is being used for controlling the bandwidth
>> - distrubution to -deadline tasks.
>> -
>> - However, more discussion is needed in order to figure out how we want to manage
>> - SCHED_DEADLINE bandwidth at the task group level. Therefore, SCHED_DEADLINE
>> - uses (for now) a less sophisticated, but actually very sensible, mechanism to
>> - ensure that a certain utilization cap is not overcome per each root_domain.
>> -
>> - Another main difference between deadline bandwidth management and RT-throttling
>> + bandwidth to the tasks under control. This is usually called "admission
>> + control" and if it is not performed at all, no guarantee can be given on
>> + the actual scheduling of the -deadline tasks.
>> +
>> + The interface used to control the fraction of CPU bandwidth that can be
>> + allocated to -deadline tasks is similar to the one already used for -rt
>> + tasks with real-time group scheduling (a.k.a. RT-throttling - see
>> + Documentation/scheduler/sched-rt-group.txt), and is based on readable/
>> + writable control files located in procfs (for system wide settings).
>> + Notice that per-group settings (controlled through cgroupfs) are still not
>> + defined for -deadline tasks, because more discussion is needed in order to
>> + figure out how we want to manage SCHED_DEADLINE bandwidth at the task group
>> + level.
>> +
>> + A main difference between deadline bandwidth management and RT-throttling
>>   is that -deadline tasks have bandwidth on their own (while -rt ones don't!),
>> - and thus we don't need an higher level throttling mechanism to enforce the
>> - desired bandwidth.
>> + and thus we don't need a higher level throttling mechanism to enforce the
>> + desired bandwidth. Therefore, using this simple interface we can put a cap
>> + on total utilization of -deadline tasks (i.e., \Sum (runtime_i / period_i) <
>> + some_desired_value).
> 
> s/some_desired_value/global_dl_utilization_cap/  perhaps?
> 

Ok, fixed.

>>  4.1 System wide settings
>>  ------------------------
>>  
>>   The system wide settings are configured under the /proc virtual file system.
>>  
>> - For now the -rt knobs are used for dl admission control and the -deadline
>> - runtime is accounted against the -rt runtime. We realise that this isn't
>> - entirely desirable; however, it is better to have a small interface for now,
>> - and be able to change it easily later. The ideal situation (see 5.) is to run
>> - -rt tasks from a -deadline server; in which case the -rt bandwidth is a direct
>> - subset of dl_bw.
>> + For now the -rt knobs are used for -deadline admission control and the
>> + -deadline runtime is accounted against the -rt runtime. We realise that this
>> + isn't entirely desirable; however, it is better to have a small interface for
>> + now, and be able to change it easily later. The ideal situation (see 5.) is to
>> + run -rt tasks from a -deadline server; in which case the -rt bandwidth is a
>> + direct subset of dl_bw.
> 
> Isn't forking forbidden for _dl tasks? Or did I miss a memo somewhere?
> 

Yes, forking is forbidden. But, that's mainly because it is not entirely
clear how bandwidth has to be split between parent and child(ren). When
we'll have -rt tasks running from a -deadline server this problem will
disappear, as children will share bandwidth with other tasks in the same
server.

>>   This means that, for a root_domain comprising M CPUs, -deadline tasks
>>   can be created while the sum of their bandwidths stays below:
>> -- 
>> 2.0.4
>>
>>
> 
> All in all, looks pretty good to me!
> 

Great!

Thanks,

- Juri


  reply	other threads:[~2014-09-04  8:57 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-08-28 10:00 [PATCH v3 0/4] SCHED_DEADLINE documentation fixes and improvements Juri Lelli
2014-08-28 10:00 ` [PATCH v3 1/4] Documentation/scheduler/sched-deadline.txt: fix terminology and improve clarity Juri Lelli
2014-09-02 21:10   ` Henrik Austad
2014-09-03  6:43     ` Luca Abeni
     [not found]       ` <CAM6o_m19T7OV=4_5rh_m1XSZKQmpKD0TaSSkiOxthNLz7uJ8Gw@mail.gmail.com>
2014-09-03  8:27         ` Luca Abeni
2014-09-04  8:46     ` Juri Lelli
2014-08-28 10:00 ` [PATCH v3 2/4] Documentation/scheduler/sched-deadline.txt: Rewrite section 4 intro Juri Lelli
2014-09-02 21:14   ` Henrik Austad
2014-09-04  8:57     ` Juri Lelli [this message]
2014-08-28 10:00 ` [PATCH v3 3/4] Documentation/scheduler/sched-deadline.txt: improve and clarify AC bits Juri Lelli
2014-09-02 21:45   ` Henrik Austad
2014-09-03  6:49     ` Luca Abeni
     [not found]       ` <CAM6o_m3VXiJO3ED_Rb-_Kfaw7mFyw_s4W0quQ_hSbpxgA_foLA@mail.gmail.com>
2014-09-03  8:37         ` Luca Abeni
2014-09-03  9:18       ` Juri Lelli
2014-09-04  9:25         ` Juri Lelli
2014-08-28 10:00 ` [PATCH v3 4/4] Documentation/scheduler/sched-deadline.txt: add tests suite appendix Juri Lelli
2014-09-02 21:53   ` Henrik Austad
2014-09-04 10:15     ` Juri Lelli
2014-09-02 21:55 ` [PATCH v3 0/4] SCHED_DEADLINE documentation fixes and improvements Henrik Austad
2014-09-03  8:46   ` Ingo Molnar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5408298F.5090802@arm.com \
    --to=juri.lelli@arm.com \
    --cc=henrik@austad.us \
    --cc=juri.lelli@gmail.com \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luca.abeni@unitn.it \
    --cc=mingo@redhat.com \
    --cc=peterz@infradead.org \
    --cc=raistlin@linux.it \
    --cc=rdunlap@infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox