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
next prev parent 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.