Re: periods and deadlines in SCHED_DEADLINE

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Bjoern Brandenburg
Date: Tuesday, August 3, 2010 - 9:44 pm

On Aug 2, 2010, at 3:34 PM, Peter Zijlstra <peterz@infradead.org> wrote:


From my point of view I don't really see a difference—the first approach probably lends itself better to adding additional variants but makes it harder to tweak a particular feature once it's used in userspace.


Neither makes much sense in the context of a truly global scheduler. Creating non-overlapping clusters makes sense to create clustered schedulers.


It is probably a good idea to keep it as limited as possible in the beginning. There is no  supporting theory afaik for overlapping clusters or non-uniform CPU affinities (i.e., nobody's looked at a case in which CPU affinities can vary from task to task).  


Couldn't you simply reject tasks that call setscheduler() with a combination of 'hard' and a CPU affinity mask with more than one CPU allowed?   


I don't think the implemented policy is just a hidden implementation detail that can be transparently changed in a future kernel version. Sure, other sporadic schedulers exist, but a lot of things in real-time systems depend on the scheduling policy (e.g., retry bounds for lock-free data structures, locking protocols, overhead accounting, etc.) so that changing it without revalidating/testing everything is not really an option. (At least not for applications that could be considered 'almost hard real-time').  


In theory I fully agree, but I strongly suspect that applications are going to assume a specific implementation anyway in practice. Changing the implemented scheduling policy for sporadic tasks would essentially force all existing embedded apps that make use of this API back into testing, which likely means that newer kernel versions could not be adopted for older projects (which may be the case anyway). In light of this, it may not be unreasonable to promise a specific policy.

However, a generic SCHED_DEADLINE does not preclude the option of supporting specific policies later, so this might not be a big deal in the end.  


- Björn--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Re: periods and deadlines in SCHED_DEADLINE, Peter Zijlstra, (Fri Jul 9, 7:30 am)
Re: periods and deadlines in SCHED_DEADLINE, Raistlin, (Sat Jul 10, 2:14 am)
Re: periods and deadlines in SCHED_DEADLINE, Harald Gustafsson, (Sat Jul 10, 10:19 am)
Re: periods and deadlines in SCHED_DEADLINE, Peter Zijlstra, (Sat Jul 10, 11:31 am)
Re: periods and deadlines in SCHED_DEADLINE, Harald Gustafsson, (Sat Jul 10, 1:08 pm)
Re: periods and deadlines in SCHED_DEADLINE, Raistlin, (Sat Jul 10, 2:52 pm)
Re: periods and deadlines in SCHED_DEADLINE, Harald Gustafsson, (Sat Jul 10, 10:41 pm)
Re: periods and deadlines in SCHED_DEADLINE, Bjoern Brandenburg, (Sun Jul 11, 12:32 am)
Re: periods and deadlines in SCHED_DEADLINE, Harald Gustafsson, (Mon Jul 12, 3:21 am)
Re: periods and deadlines in SCHED_DEADLINE, Peter Zijlstra, (Mon Aug 2, 12:34 pm)
Re: periods and deadlines in SCHED_DEADLINE, Bjoern Brandenburg, (Tue Aug 3, 9:44 pm)
Re: periods and deadlines in SCHED_DEADLINE, Bjoern Brandenburg, (Tue Aug 3, 10:55 pm)