aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAge
* Merge branch 'wip-semi-part' of ssh://cvs/cvs/proj/litmus/repo/litmus2010 ↵archived-semi-partAndrea Bastoni2010-09-28
|\ | | | | | | into wip-semi-part
| * Add tracing for timer-pulling overhead.Andrea Bastoni2010-09-28
| |
* | Be verbose with error messages in npsf_admit_taskAndrea Bastoni2010-09-28
|/
* Use hrtimer_start_on_info_init()Andrea Bastoni2010-09-28
|
* Add init helper function to properly set hrtimer_start_on_info paramsAndrea Bastoni2010-09-28
| | | | | | | This helper function is also useful to remind us that if we use hrtimer_pull outside the scope of triggering remote releases, we need to take care of properly set the "state" field of hrtimer_start_on_info structure.
* Bugfix: infinite loop upon timer disabling.Andrea Bastoni2010-09-28
|
* Bugfix: clear the state of pulled hrtimers during tear-downAndrea Bastoni2010-09-28
| | | | | | | | | | | | The state of pulled hrtimers is reset during reinit_release_heap() as this timers normally only controls remote releases. In NPS-F the state of a pulled timer is not reset once the pulling is over and therefore timers are no longer pulled (and restarted) upon plugin reloading. FIXME list: moving reset of HRTIMER_START_ON_INACTIVE in on_release_timer() ?
* Add extra tracing points and format old tracesAndrea Bastoni2010-09-28
|
* EDF-WM: enforce budgets of slices preciselyBjoern B. Brandenburg2010-09-22
| | | | | Program the enforcement timer when we need to make sure that schedule() invoked shortly after a budget expiring.
* EDF-WM: handle race between wake_up() and schedule()Bjoern B. Brandenburg2010-09-22
| | | | | | A job that temporarily blocked without being descheduled might have its slices advanced to the next CPU. In this case, we need to force a rescheduling + migration.
* EDF-WM: handle races between out_of_time and blocksBjoern B. Brandenburg2010-09-22
| | | | Also move budget handling functions to top of file.
* EDF-WM: add tracing info and BUG_ON() checksBjoern B. Brandenburg2010-09-22
| | | | To aid with debugging.
* Litmus core: set state to TASK_RUNNING before calling wake_up()Bjoern B. Brandenburg2010-09-22
| | | | | | | | | Having tasks that are !is_running() in shared structures is very confusing during development and debugging, and can likely mask bugs and/or create races. It seems like a strange choice that Linux changes a task's state only _after_ activating it. For LITMUS^RT tasks, we change this order.
* Litmus core: disable timer TRACE() spam by defaultBjoern B. Brandenburg2010-09-22
| | | | | | | These messages are highly useful when debugging races, but they quickly litter the log when looking for something else. We keep them around, but by default they shouldn't show up.
* EDF-WM: require that sliced tasks have precisely enforced budgetsBjoern B. Brandenburg2010-09-22
| | | | | Jobs do not signal when a slice is complete, thus, we need to police it accurately.
* Litmus core: add macro to test for PRECISE_ENFORCEMENTBjoern B. Brandenburg2010-09-22
| | | | | | Required for EDF-WM. We should implement precise enforcement in the core distribution soon anyway (once we know how it works in EDF-WM).
* Litmus core: add budget_remaining() helperBjoern B. Brandenburg2010-09-22
| | | | Returns the amount of budget left for a given job.
* Merge branch 'wip-edf-wm' into wip-semi-partAndrea Bastoni2010-09-22
|\ | | | | | | | | | | | | | | | | This version of litmus2010 contains the implementation of three semi-partitioned scheduling algorithms: EDF-fm, EDF-WM, and NPS-F. Conflicts: include/litmus/rt_param.h litmus/Makefile
| * EDF-WM: migrating tasks can actually be queued when blockingBjoern B. Brandenburg2010-09-22
| | | | | | | | | | The migration code patch simulates blocking if state changes occur while dropping the lock. We need to handle that.
| * EDF-WM: do not release before next job is eligibleBjoern B. Brandenburg2010-09-22
| | | | | | | | | | When the budget is exhausted but the job wakes up before its actual deadline, then we do not want to release right now.
| * EDF-WM: make sure a sliced task has its fields initializedBjoern B. Brandenburg2010-09-22
| | | | | | | | This created a juicy NULL dereference due to wm.slice being NULL.
| * EDF-WM: improve debugging helpBjoern B. Brandenburg2010-09-22
| | | | | | | | Trace more and be a bit paranoid.
| * Litmus core: allow PRECISE_ENFORCEMENTBjoern B. Brandenburg2010-09-22
| | | | | | | | We'll need this to allow hrtimer-based budget enforcement in EDF-WM.
| * EDF-WM: allow slice budgets of 50us and greaterBjoern B. Brandenburg2010-09-22
| | | | | | | | | | The partitioning does seem to create some small budgets, so let's support. Going smaller than this seems a bit silly.
| * EDF-WM: trace reasons why a task was rejectedBjoern B. Brandenburg2010-09-22
| | | | | | | | Makes debugging easier.
| * EDF-WM: less noisy logsBjoern B. Brandenburg2010-09-22
| | | | | | | | Only log becoming idle if there actually was a RT task previously.
| * EDF-WM: NR_CPUS is not well-defined in userspaceBjoern B. Brandenburg2010-09-22
| | | | | | | | | | For now, just hard-code a limit. This is ugly, but RTAS is only 2 weeks away.
| * EDF-WM: add remote queuing operationBjoern B. Brandenburg2010-09-22
| | | | | | | | | | When the current slice is expired, then a job has to migrate to another processor. wm_requeue_remote() takes care of this.
| * EDF-WM: add "fast-forwarding" to slice accountingBjoern B. Brandenburg2010-09-22
| | | | | | | | | | | | If a lot of time has passed, then this code can be used to advance across several slices. This will be used in the wm_wake_up() code path.
| * EDF-WM: remove old code & commentBjoern B. Brandenburg2010-09-21
| |
| * EDF-WM: add get_last_slice() helperBjoern B. Brandenburg2010-09-21
| |
| * EDF-WM: keep track of when jobs suspendBjoern B. Brandenburg2010-09-21
| |
| * EDF-WM: add custom release_at() handlerBjoern B. Brandenburg2010-09-21
| | | | | | | | Releasing sliced tasks is a bit more involved...
| * EDF-WM: add parameter checking to wm_admit_taskBjoern B. Brandenburg2010-09-21
| |
| * rt_domain_t: add add_release_on()Bjoern B. Brandenburg2010-09-21
| | | | | | | | | | | | | | | | This API addition allows the calling code to override the release master for a given rt_domain_t object. This is particularly useful if a job is supposed to migrate to a particular CPU. This need arises for example in semi- partitioned schedulers.
| * EDF-WM: slice-aware budget checks and job completionsBjoern B. Brandenburg2010-09-21
| |
| * EDF-WM: add logic for slice-advancementBjoern B. Brandenburg2010-09-21
| |
| * EDF-WM: rip out non-preemptivity checksBjoern B. Brandenburg2010-09-21
| |
| * EDF-WM: cleanup names a bitBjoern B. Brandenburg2010-09-21
| |
| * EDF-WM: add enforcement timerBjoern B. Brandenburg2010-09-21
| |
| * Start with a clean base.Bjoern B. Brandenburg2010-09-21
| | | | | | | | Copy & rename PSN-EDF.
| * compile fix: type namespace is flat in CBjoern B. Brandenburg2010-09-21
| | | | | | | | Avoids name clash---we don't need the types anyway.
| * unbloat struct rt_jobBjoern B. Brandenburg2010-09-21
| |
| * Undo WM damage to common filesBjoern B. Brandenburg2010-09-21
| |
| * cleanup rt_param.hBjoern B. Brandenburg2010-09-21
| |
| * [EDF-WM] Indent and separate some functionsAndrea Bastoni2010-09-21
| |
| * Removed bug from edf-wm codeGuruprasad Aphale2010-09-19
| | | | | | | | | | Updated the code to remove the condition that was causing soft-lockup problem.
| * Added cpu accounting for slices of a jobGuruprasad Aphale2010-08-10
| | | | | | | | | | | | | | The last commit didn't include proper accounting of cpu time for slices of a job. This commit has modified 'update_time_litmus' in litmus/sched_litmus.c to track cpu time given to the current slice of a job on a particular cpu.
| * Added migration support to wm schedulerGuruprasad Aphale2010-08-07
| | | | | | | | | | | | | | | | | | This commit has edf-wm code working with migrations. The remote-locking process is also working properly in this commit. The subjobs of the tasks are migrated across cpus based on the window size. A timer is set for each migrating job when it starts execution on its slice on a particular cpu. Also for migration, a timer is set on remote cpu when the next slice is due for execution.
| * Added timer functionality to edf-wm schedulerGuruprasad Aphale2010-07-24
| | | | | | | | | | Added functions required for timer control to the current scheduler. Still, it does not support migrations and works same as PSN-EDF.