aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAge
* Bugfix: Fix FMLP priority inheritance under GSN-EDFHEADmasterBjoern B. Brandenburg2009-10-05
| | | | | | | | | | | | | | | This fixes a regression introduced by the RTSS'09 improvements. Just calling unlink() on any task is not safe: it might reside in a release heap. This was done in the case that a new blocker increases a lock holder's priority. To avoid crashing in this case, the FMLP code was changed to be more careful when propagating an inherited priority. The code now detects three different scenarios and uses heap_decrease() to update the position of the lock holder's heap node. This fixes a simple test case.
* binomial heap: support decrease() operationBjoern B. Brandenburg2009-10-05
| | | | | | | Used to adjust position of heap node after the key of the node was decreased (= made more important). Cannot be used if key was increased (= made less important).
* re-organize getters2008.3Bjoern B. Brandenburg2009-09-16
| | | | Stick get_release() to the rest of the bunch.
* remove concurrent heap from mainlineBjoern B. Brandenburg2009-09-10
|
* cleanup trailing whitespaceBjoern B. Brandenburg2009-09-10
|
* Remove non-mainline G-EDF pluginsBjoern B. Brandenburg2009-09-10
| | | | | This removes the plugins created for RTSS'09 that we don't want to track in mainline Linux.
* x86 setup: fix constraints in segment accessor functionsH. Peter Anvin2009-09-10
| | | | | | | | | | Fix the operand constraints for the segment accessor functions, {rd,wr}{fs,gs}*. In particular, the 8-bit functions used "r" constraints instead of "q" constraints. Signed-off-by: H. Peter Anvin <hpa@zytor.com> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* EDF plugins: don't forget to preempt new tasks on release-masterBjoern B. Brandenburg2009-05-04
| | | | | This fixes a bug that lead to task stacks being used s simultaneously on two CPUs.
* litmus core: cleanupBjoern B. Brandenburg2009-05-04
| | | | Line breaks, ammend comments, etc.
* G-EDF: always mark scheduled tasks as being so (bugfix)Bjoern B. Brandenburg2009-05-04
| | | | | | If schedule() was invoked twice in a retry, then the scheduled task might have not been "picked" properly because it was still scheduled.
* rt domain: remove unused debugging codeBjoern B. Brandenburg2009-05-04
|
* rt domain: evil hack to avoid recursive hrtimer lock acquisitionBjoern B. Brandenburg2009-05-04
| | | | | | | | This is a really dirty hack, but works for now since our real-time tasks do not use hrtimer_wakeup(). The need for this will go away when we port since newer versions of the Linux kernel allow timers to be activated directly in the scheduler.
* Merge branch 'master' of ↵Bjoern B. Brandenburg2009-05-03
|\ | | | | | | ssh://cvs.cs.unc.edu/cvs/proj/litmus/repo/papers/RTSS09/litmus2008 into rtss09
| * GQ-EDF: remove link completely (bugfix)Bjoern B. Brandenburg2009-05-03
| | | | | | | | Fixes fa940ad71184dec3d156b7dd673ee38067e7c0f6.
* | rt domain: fix rare deadlock between timer base lock and release lockBjoern B. Brandenburg2009-05-03
|/ | | | | | If a timer happens to go off at the wrong time on the wrong CPU, the old code could deadlock. This avoided in the new version by dropping the release_lock before using the hrtimer API.
* GQ-EDF: don't blindly overwrite entry->linked (bugfix)Bjoern B. Brandenburg2009-05-03
| | | | | Check if an already-linked task must be re-inserted into the ready queue.
* rt domain: make sure release heap is not in use before re-initBjoern B. Brandenburg2009-05-03
| | | | | | | | This fixes a bug observed under G-EDF: A task with extremely low wcet budget could get scheduled and re-added to its own release heap while the heap was still in use in the same timer callback that released the task. Havoc, predictably, ensued.
* hrtimer: remove unused flag of pull implementationBjoern B. Brandenburg2009-05-03
| | | | The flag was racy anyway and could not be used safely.
* rt domain: avoid use-after-free and re-init-while-in-use bugsBjoern B. Brandenburg2009-05-03
| | | | | | Don't just blindly overwrite the timers if they could be still in use. The the use-after-free bug was observed under Qemu.
* GQ-EDF: don't put running tasks in to released queue (bugfix)Bjoern B. Brandenburg2009-05-02
|
* litmus core: report ready tasks to user spaceBjoern B. Brandenburg2009-05-02
|
* fix layout of Litmus config menuBjoern B. Brandenburg2009-05-02
|
* litmus core: add dump-trace-buffer magic sysrqBjoern B. Brandenburg2009-05-02
| | | | Pump stuff from the TRACE() buffer to printk() on demand.
* rt domain: don't arm the same release heap timer twice (bugfix)Bjoern B. Brandenburg2009-05-02
| | | | | If the timeout was realy close and the timing unfortunate, the timer callback got invoked twice, with oopsing consequences.
* litmus core: un-inline binomial heap implementationBjoern B. Brandenburg2009-05-02
| | | | | | Those functions are pretty huge, and used in a couple of plugins. This should save a lot of space, make debugging with objdump much easier, and maybe it even has some I$ benefit.
* litmus core: fix sysrq registrationBjoern B. Brandenburg2009-05-02
| | | | The letter 'q' is already taken in 2.6.24.
* GSN-EDF: add release master supportBjoern B. Brandenburg2009-04-29
|
* release master support: fix new job codeBjoern B. Brandenburg2009-04-29
|
* trace IPI latency on sparc64Bjoern B. Brandenburg2009-04-28
|
* trace IPI latency on x86Bjoern B. Brandenburg2009-04-28
|
* add support for tracing IPI latencyBjoern B. Brandenburg2009-04-28
|
* GHQ-EDF: first shot at hierarchical queues implementationBjoern B. Brandenburg2009-04-27
| | | | seems to run in QEMU
* GQ-EDF: release master support.Bjoern B. Brandenburg2009-04-24
| | | | Basically same as G-EDF.
* G-EDF: release master support bugfixBjoern B. Brandenburg2009-04-24
| | | | Don't relink to release master.
* litmus config: make itpossible to compile without overhead tracingBjoern B. Brandenburg2009-04-24
| | | | Factor out ftdev support from overhead tracing.
* sched trace: fix prototypeBjoern B. Brandenburg2009-04-24
| | | | Removes a compile warning on sparc64.
* sparc64: provide smp_send_pull_timers() implementationBjoern B. Brandenburg2009-04-23
|
* G-EDF: make use of release_master interfaceBjoern B. Brandenburg2009-04-23
| | | | | | The current release_master setting is copied when activating the plugin. Changing it during execution is currently not supported.
* edf common: fix debugging outputBjoern B. Brandenburg2009-04-23
|
* litmus proc: add release_master interfaceBjoern B. Brandenburg2009-04-23
| | | | | Let user space set which CPU should handle releases. It is up to plugins to make use of this information.
* fixup commit: missing rtdomain piecesBjoern B. Brandenburg2009-04-23
|
* litmus tracing: expose scheduling overheadBjoern B. Brandenburg2009-04-22
| | | | | move the switch_from/switch_to trace macros so that the scheduling overhead shows up more clearly in the traces
* rt domain: add support for release masterBjoern B. Brandenburg2009-04-22
| | | | | A release master is a CPU that takes all timer interrupts for release of a given rt_domain_t. By default off.
* litmus core: reduce lenth of interrups off in tick_no_rqlock()Bjoern B. Brandenburg2009-04-22
| | | | this was never strictly required, so we might as well avoid it
* fixup commit: missing hrtimer bitsBjoern B. Brandenburg2009-04-22
|
* litmus core: provide central NO_CPU definitionBjoern B. Brandenburg2009-04-22
| | | | this removes a blatant case of copy&paste reuse
* x86-32: add support for smp_send_pull_timers()Bjoern B. Brandenburg2009-04-22
| | | | | This establishes the architectures dependent bits for hrtimer_start_on() on x86-32.
* hrtimer: add support for starting timers on remote CPUsBjoern B. Brandenburg2009-04-22
| | | | | This depends on the ability to send the special 'pull_timers' IPI even with IRQs disabled.
* G-EDF: compiles & runs in QEMUBjoern B. Brandenburg2009-04-19
|
* litmus core: trace task state on wake ups of RT tasks.Bjoern B. Brandenburg2009-04-19
| | | | Helps when debugging wake-up related crashes.