aboutsummaryrefslogtreecommitdiffstats
path: root/litmus/sched_gsn_edf.c
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.
* 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.
* GSN-EDF: add release master supportBjoern B. Brandenburg2009-04-29
|
* litmus core: provide central NO_CPU definitionBjoern B. Brandenburg2009-04-22
| | | | this removes a blatant case of copy&paste reuse
* GSN-EDF: remove old and wrong commentBjoern B. Brandenburg2009-04-19
|
* GSN-EDF: trace job releases of tardy tasksBjoern B. Brandenburg2008-11-10
|
* GSN-EDF,CEDF: fix task system releaseBjoern B. Brandenburg2008-11-03
| | | | | Not-yet-released jobs were not properly queued because of an overly complicated and wrong requeue implementation. Found by visualizing sched_traces.
* sched_trace: new implementationBjoern B. Brandenburg2008-10-06
| | | | | This provides and hooks up a new made-from-scratch sched_trace() implementation based on Feather-Trace and ftdev.
* cleanup: fix some sloppiness spotted by JohnBjoern B. Brandenburg2008-09-11
| | | | | This patch fixes some minor issues that inadvertedly crept in during development. Found in John's review.
* GSN-EDF: make the CPU queue a proper heapBjoern B. Brandenburg2008-09-11
| | | | | | This should be faster on high CPU counts. The list-based implementation was O(1) + O(N) for a position update. The heap-based implementation is O(log N) + O(log N).
* rt_domain: make release queue handling more efficientBjoern B. Brandenburg2008-09-11
| | | | | | | | | | | | | | Instead of having hrtimers for each task, we now have only one hrtimer per rt_domain. To-be-released tasks are grouped in mergable heaps and presented as a bunch on each release. This approach should allow us to reduce the worst-case overhead at hyperperiod boundaries significantly. 1) less hrtimer overhead 2) less calls to the active plugin 3) only one CPU handles releases at a time 4) (2) & (3) should bring down lock contention significantly
* compile without FMLP support if it is disabledBjoern B. Brandenburg2008-07-01
|
* GSN/PSN: Update processor state on task exitBjoern B. Brandenburg2008-05-22
| | | | Without this change, a BUG_ON() in schedule() triggers.
* Use binomial heaps as priority queues.Bjoern B. Brandenburg2008-05-19
| | | | | | The list-based priority queues did not perform well on the Niagara T2000. This heap-based implementation should perform much faster when queues are long.
* GSN/PSN: improve lockingBjoern B. Brandenburg2008-05-11
|
* GSN-EDF: log relinking decisionsBjoern B. Brandenburg2008-05-05
| | | | For debugging, make relinking optimizations available in the TRACE() log.
* GSN-EDF: facilitate debuggingBjoern B. Brandenburg2008-05-04
| | | | Make CPU state available to gdb.
* EDF: don't arm timers multiple timesBjoern B. Brandenburg2008-05-04
| | | | Blocking and preemptions must take precedence over forced job completions.
* LITMUS: avoid using the same stack on two CPUs in global schedulersBjoern B. Brandenburg2008-05-04
| | | | | This change fixes a race where a job could be executed on more than one CPU, which to random crashes.
* LITMUS: rework rt_domain to not cause circular lockig dependenciesBjoern B. Brandenburg2008-05-02
|
* GSN-EDF: add extra debug infoBjoern B. Brandenburg2008-05-02
|
* LITMUS: let plugins declare their willingness to allow synchronizationBjoern B. Brandenburg2008-05-01
| | | | | - don't let SRP be active under GSN-EDF - later, don't let FMLP be active under PFAIR, either
* Merge branch 'synch_quanta' into mergeBjoern B. Brandenburg2008-05-01
|\ | | | | | | | | | | | | | | | | | | | | Conflicts: litmus/edf_common.c litmus/sched_gsn_edf.c litmus/sched_psn_edf.c Minor clashes between sched_clock() -> litmus_clock() and jobs.c refactoring merged by hand. The result has been compile-tested.
| * LITMUS CORE: Release jobs with hrtimersJohn M. Calandrino2008-04-30
| | | | | | | | John's proposal for how to release jobs with hrtimers.
* | litmus: move job release functions to common codeBjoern B. Brandenburg2008-04-30
|/
* LITMUS 2008: Initial PortBjoern B. Brandenburg2008-02-13
This introduces the core changes ported from LITMUS 2007. The kernel seems to work under QEMU, but many bugs probably remain.