Messages in this thread | | | Subject | Re: [PATCH 3/8] sched: rt-group: interface | From | Peter Zijlstra <> | Date | Sat, 23 Feb 2008 21:26:29 +0100 |
| |
On Sat, 2008-02-23 at 12:02 -0800, Paul Menage wrote: > On Sat, Feb 23, 2008 at 11:57 AM, Peter Zijlstra <a.p.zijlstra@chello.nl> wrote: > > > If so, could we avoid that problem by using 0 rather than -1 as the > > > "unlimited" value? It looks from what I've read in the Documentation > > > changes as though 0 isn't really a meaningful value. > > > > 0 means no time, quite useful and clearly distinct from inf. time. > > > > So a real-time task in a cgroup with a 0 rt_runtime can be in the R > state but never actually get to run? OK, if people need to be able to > do that then fair enough.
Yeah, its an awkward situation, and we refuse new rt tasks in such groups. But the 0 value is needed so you can have groups that don't participate in the realtime scheduling because we enforce a schedulalbility constraint over the groups.
Each group has a runtime ratio, namely: rt_runtime / rt_period. The sum of this ratio over all groups must be smaller or equal to the global ratio which must be smaller or equal to 1.
> In that case I guess I'll have to add signed versions of the > read_uint/write_uint methods.
Yes, I looked at that, I found the interface somewhat unfortunate, it would mean growing the struct with two more function pointers. Perhaps a read and write function with abstract data would be better suited. That would allow for this and more. Sadly it looses type information.
| |