From: Tommaso Cucinotta <cucinotta@sssup.it>
To: Jamie Lokier <jamie@shareable.org>
Cc: Raistlin <raistlin@linux.it>,
Peter Zijlstra <peterz@infradead.org>,
sen wang <wangsen.linux@gmail.com>,
mingo@elte.hu, akpm@linux-foundation.org, kernel@kolivas.org,
npiggin@suse.de, arjan@infradead.org,
linux-arm-kernel@lists.arm.linux.org.uk,
linux-kernel@vger.kernel.org,
Tommaso Cucinotta <tommaso.cucinotta@sssup.it>
Subject: Re: report a bug about sched_rt
Date: Sun, 26 Jul 2009 01:24:26 +0200 [thread overview]
Message-ID: <4A6B942A.3050201@sssup.it> (raw)
In-Reply-To: <20090725225459.GB15260@shareable.org>
Hi,
Jamie Lokier ha scritto:
> Raistlin wrote:
>
>>> http://feanor.sssup.it/~faggioli/papers/OSPERT-2009-dlexception.pdf
>>>
>> Moreover, we are open to any
>> suggestion and contribution about this work, especially from the
>> community!
>>
>
> The biggest weakness I see is if the application has a bug such as
> overwriting random memory or terminating the thread which is receiving
> timer signals, it can easily break the scheduling policy by accident.
>
> When the scheduling policy is implemented in the kernel, it can only
> be broken by system calls requesting a change of scheduling policy,
> which are relatively unlikely, and if necessary that can be completely
> prevented by security controls.
>
First, thanks for your comments and interest. The mentioned mechanism
should be regarded as something that helps in the development of
programs that need to meet timing requirements. This is not meant at all
to constitute a "user-level" scheduler, nor to replace a real-time
scheduler job. Contrarily, its purpose is solely to push towards a
software design paradigm in which the "awareness" of the existing timing
constraints, and the "awareness" of the possibility that they might be
violated (on a GPOS) is coded at the program-level (by means of an
exception-like paradigm). The mechanism has been designed as a
complement to the real-time scheduling facilities that the kernel
provides. As an example, imagine that, by a proper configuration of the
scheduling policy and parameters, an application may be guaranteed a
certain budget every period. However, the requested budget cannot be the
actual worst-case, because it would not be practical to compute it (nor
feasible, cause it would depend on a lot of external factors such as
interrupt load etc...) and it would lead to too much under-usage of
resources. By using this exception-like paradigm, the developer may
code, into an "exception-handler" segment, the recovery actions needed
whenever the real-time task is about to violate for example its WCET
constraints (for example, one could use a "try_wcet()" block with a WCET
specs which is slightly lower than the budget configured into the
scheduler, i.e., the difference being the WCET of the exception handling
code). Then, the real-time scheduler will still enforce the configured
budget for this application, so, if the recovery logics embedded inside
the exception-handler takes too much (i.e., its WCET has been
under-estimated), then the temporal isolation is guaranteed anycase, and
the application won't impact negatively other applications' real-time
guarantees provided by the scheduler.
In fact, we're working on a practical case-study where both the
timing-exception mechanism and one of the real-time schedulers we have
here at SSSA is used. For example, a potential issue we're thinking
about is if and how to "synchronize" someway the vision of time of the
exception-based mechanism and the one of the scheduler, because in prior
experiences built modifying multimedia applications for taking advantage
of feedback-based real-time scheduling, this was one of the burden to
face with, before the application started behaving as "theoretically"
foreseen.
Hope this clarifies our view. Please, feel free to post further comments.
Regards,
T.
next prev parent reply other threads:[~2009-07-25 23:24 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-07-24 10:57 report a bug about sched_rt sen wang
2009-07-24 12:14 ` Peter Zijlstra
2009-07-24 13:04 ` sen wang
2009-07-24 13:14 ` Peter Zijlstra
2009-07-24 13:26 ` sen wang
2009-07-24 13:33 ` Peter Zijlstra
2009-07-24 13:44 ` sen wang
2009-07-24 13:54 ` Peter Zijlstra
2009-07-24 14:04 ` sen wang
2009-07-24 14:48 ` Peter Zijlstra
2009-07-24 14:53 ` sen wang
2009-07-24 15:07 ` sen wang
2009-07-24 15:24 ` Peter Zijlstra
2009-07-24 15:43 ` sen wang
2009-07-24 15:34 ` Thomas Gleixner
2009-07-25 11:12 ` Raistlin
2009-07-24 14:24 ` sen wang
2009-07-24 14:48 ` Peter Zijlstra
2009-07-24 15:02 ` sen wang
2009-07-24 15:40 ` Jamie Lokier
2009-07-24 16:01 ` Peter Zijlstra
2009-07-24 23:30 ` Jamie Lokier
2009-07-25 5:22 ` Bill Gatliff
2009-07-25 22:48 ` Jamie Lokier
2009-07-26 2:44 ` Bill Gatliff
2009-07-26 19:03 ` Jamie Lokier
2009-07-27 10:45 ` Peter Zijlstra
2009-07-27 13:35 ` Bill Gatliff
2009-07-25 12:33 ` Raistlin
2009-07-25 14:58 ` Tommaso Cucinotta
2009-07-25 12:19 ` Raistlin
2009-07-25 22:54 ` Jamie Lokier
2009-07-25 23:24 ` Tommaso Cucinotta [this message]
2009-07-25 11:10 ` Raistlin
[not found] ` <454c71700907250429i1c77658bt6d65b02f08a29f4a@mail.gmail.com>
2009-07-25 23:01 ` Jamie Lokier
2009-07-24 14:28 ` Arjan van de Ven
2009-07-26 3:55 ` sen wang
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=4A6B942A.3050201@sssup.it \
--to=cucinotta@sssup.it \
--cc=akpm@linux-foundation.org \
--cc=arjan@infradead.org \
--cc=jamie@shareable.org \
--cc=kernel@kolivas.org \
--cc=linux-arm-kernel@lists.arm.linux.org.uk \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=npiggin@suse.de \
--cc=peterz@infradead.org \
--cc=raistlin@linux.it \
--cc=tommaso.cucinotta@sssup.it \
--cc=wangsen.linux@gmail.com \
/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