On Thu, 2008-06-05 at 11:16 +0000, Michael Trimarchi wrote:Exactly. Mapping them onto U64_MAX - prio or something like that ought to do. Handling wraparound of the timeline might get a little involved though - then again realtime takes 584 yrs to wrap a 64bit ns counter. I'd start with something like: u64 sched_param::edf_period [ns] u64 sched_param::edf_runtime [ns] so that deadline = time_of_schedule + edf_period, and his allowance within that period is edf_runtime. fork would inherit the parent's settings, and we'd need to do admission control on all tasks entering SCHED_EDF, either through setscheduler() or fork(). We could fail with -ENOTIME or somesuch error. Yeah - we already account the amount of runtime, we can send them SIGXCPU and stop running them. Look at the rt_bandwidth code upstream - it basically stops rt task groups from running once their quota is depleted - waking them up once it gets refreshed due to the period expiring. For single tasks its easier, just account their time and dequeue them once it exceeds the quota, and enqueue them on a refresh timer thingy to start them again once the period rolls over. The only tricky bit here is PI :-) it would need to keep running despite being over quota. --
| Tarkan Erimer | Re: Dual-Licensing Linux Kernel with GPL V2 and GPL V3 |
| Greg KH | [GIT PATCH] driver core patches against 2.6.24 |
| Justin Piszcz | exception Emask 0x0 SAct 0x1 / SErr 0x0 action 0x2 frozen |
| Heiko Carstens | Re: -mm merge plans for 2.6.23 -- sys_fallocate |
git: | |
| Gerrit Renker | [PATCH 27/37] dccp: Integration of dynamic feature activation - part 2 (server side) |
| David Miller | [GIT]: Networking |
| Frans Pop | svc: failed to register lockdv1 RPC service (errno 97). |
| Radu Rendec | htb parallelism on multi-core platforms |
