Re: [PATCH 6/6] sched: disabled rt-bandwidth by default

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Peter Zijlstra
Date: Thursday, August 28, 2008 - 9:05 am

On Thu, 2008-08-28 at 10:15 -0400, Steven Rostedt wrote:


Should be easy enough to do - 


No its not per task. Its per group (and trivially the !group case is one
group).

All this bandwidth code comes from RT group scheduling. We do that by
assigning a bandwidth to each group so that within that bandwidth each
group can use RT tasks and have them behave like they should.

I don't fully agree with the statement that the most important thing for
SCHED_FIFO is to run as long as you want.

The most important thing SCHED_FIFO brings us are deterministic
scheduling rules. And RT group scheduling maintains that determinism by
using a constand bandwidth assignment.

Now the thing that we've been bickering about - bandwidth limits on the
root group, which just fell out of the whole ordeal due to symmertry.

On the one hand, a program that ran deterministic will still run
deterministically at n% (although of course, just like running on less
powerfull hardware, you could miss deadlines you previously did not). On
the other hand, people might not expect that.

Having a lower than 100% bandwidth limit by default gives a safer
environment because it avoids total starvation, nor does it take away
determinism [*].

It does however bring the risk of surprising a few folks.

[*] - there is some added jitter due to the throttling logic, and since
the default period might not align nicely with actual deadlines its not
perfect. An EDF based scheduler with <100% bandwidth caps would do
better.

Other scheduling classes have been mentioned... I've been on the point
of writing SCHED_ISO, a bandwidth throttled SCHED_FIFO that doesn't
require root priviligles and comes with say a 10% bandwidth limit.

Doing that should not be too hard - it will just add more code and a
bigger configuration space.



--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH 6/6] sched: disabled rt-bandwidth by default, Peter Zijlstra, (Tue Aug 19, 3:33 am)
[PATCH] sched: extract walk_tg_tree(), fix, Ingo Molnar, (Tue Aug 19, 4:42 am)
Re: [PATCH 6/6] sched: disabled rt-bandwidth by default, Max Krasnyansky, (Tue Aug 19, 11:15 am)
Re: [PATCH 6/6] sched: disabled rt-bandwidth by default, Thomas Gleixner, (Tue Aug 26, 4:09 am)
Re: [PATCH 6/6] sched: disabled rt-bandwidth by default, Theodore Tso, (Tue Aug 26, 5:50 am)
Re: [PATCH 6/6] sched: disabled rt-bandwidth by default, Stefani Seibold, (Tue Aug 26, 6:31 am)
Re: [PATCH 6/6] sched: disabled rt-bandwidth by default, Mark Hounschell, (Tue Aug 26, 6:47 am)
Re: [PATCH 6/6] sched: disabled rt-bandwidth by default, Theodore Tso, (Tue Aug 26, 10:55 am)
Re: [PATCH 6/6] sched: disabled rt-bandwidth by default, Thomas Gleixner, (Tue Aug 26, 2:37 pm)
Re: [PATCH 6/6] sched: disabled rt-bandwidth by default, Steven Rostedt, (Tue Aug 26, 4:00 pm)
Re: [PATCH 6/6] sched: disabled rt-bandwidth by default, Chris Friesen, (Wed Aug 27, 11:55 am)
Re: [PATCH 6/6] sched: disabled rt-bandwidth by default, Peter Zijlstra, (Thu Aug 28, 4:19 am)
Re: [PATCH 6/6] sched: disabled rt-bandwidth by default, Peter Zijlstra, (Thu Aug 28, 5:00 am)
Re: [PATCH 6/6] sched: disabled rt-bandwidth by default, Steven Rostedt, (Thu Aug 28, 7:15 am)
Re: [PATCH 6/6] sched: disabled rt-bandwidth by default, Steven Rostedt, (Thu Aug 28, 8:12 am)
Re: [PATCH 6/6] sched: disabled rt-bandwidth by default, Steven Rostedt, (Thu Aug 28, 8:50 am)
Re: [PATCH 6/6] sched: disabled rt-bandwidth by default, Peter Zijlstra, (Thu Aug 28, 9:05 am)
Re: [PATCH 6/6] sched: disabled rt-bandwidth by default, Steven Rostedt, (Thu Aug 28, 9:15 am)
Re: [PATCH 6/6] sched: disabled rt-bandwidth by default, Max Krasnyansky, (Thu Aug 28, 9:19 am)
Re: [PATCH 6/6] sched: disabled rt-bandwidth by default, Peter Zijlstra, (Thu Aug 28, 9:29 am)
Re: [PATCH 6/6] sched: disabled rt-bandwidth by default, Max Krasnyansky, (Thu Aug 28, 9:33 am)
Re: [PATCH 6/6] sched: disabled rt-bandwidth by default, Linus Torvalds, (Thu Aug 28, 10:26 am)
Re: [PATCH 6/6] sched: disabled rt-bandwidth by default, Steven Rostedt, (Thu Aug 28, 11:04 am)
Re: [PATCH 6/6] sched: disabled rt-bandwidth by default, Darren Hart, (Thu Aug 28, 11:10 am)
Re: [PATCH 6/6] sched: disabled rt-bandwidth by default, Mark Hounschell, (Thu Aug 28, 11:16 am)
Re: [PATCH 6/6] sched: disabled rt-bandwidth by default, Linus Torvalds, (Thu Aug 28, 11:42 am)
Re: [PATCH 6/6] sched: disabled rt-bandwidth by default, Steven Rostedt, (Thu Aug 28, 11:53 am)
Re: [PATCH 6/6] sched: disabled rt-bandwidth by default, Stefani Seibold, (Thu Aug 28, 12:39 pm)
Re: [PATCH 6/6] sched: disabled rt-bandwidth by default, Mike Galbraith, (Fri Aug 29, 12:56 am)
Re: [PATCH 6/6] sched: disabled rt-bandwidth by default, Peter Zijlstra, (Fri Aug 29, 1:06 am)
Re: [PATCH 6/6] sched: disabled rt-bandwidth by default, Mike Galbraith, (Fri Aug 29, 1:47 am)
Re: [PATCH 6/6] sched: disabled rt-bandwidth by default, Nick Piggin, (Fri Aug 29, 11:33 pm)