aboutsummaryrefslogtreecommitdiffstats
path: root/litmus
Commit message (Collapse)AuthorAge
...
* PFAIR: Add support for sporad task releases.John Calandrino2008-07-14
|
* make inclusion of SRP support optional2008.1Bjoern B. Brandenburg2008-07-01
| | | | we can disable it to improve performance when it is not needed
* compile without FMLP support if it is disabledBjoern B. Brandenburg2008-07-01
|
* don't include NP-Flag syscalls if config option is not selectedBjoern B. Brandenburg2008-07-01
|
* Add config options to enable and disable the FMLP.Bjoern B. Brandenburg2008-07-01
| | | | NP-Flag support appears to be broken at the moment on SPARC64.
* LITMUS: Add the PFAIR plugin.RTSS08Bjoern B. Brandenburg2008-05-23
| | | | | | | | | | | | | | | | | This adds the PFAIR plugin. The implementation is based on an earlier version developed by John Calandrino. Features: - supports aligned and staggered quanta - supports early releasing - uses mergable heaps to limit overheads This version still has a couple of limitations: - no support for sporadic; all tasks are assumed to be periodic - tasks are limited to a maximum period of 1000 quanta - overload (especially in the tick) is not handled gracefully
* Feather-Trace: Increase the trace buffer sizeBjoern B. Brandenburg2008-05-22
| | | | | We probably don't get such a big buffer, but the allocation code scales it down if such a large memory chunk is not available.
* record task type in feather trace time stampBjoern B. Brandenburg2008-05-22
|
* Feather-Trace: use fixed size fieldsBjoern B. Brandenburg2008-05-22
|
* Merge branch 'feather-trace'Bjoern B. Brandenburg2008-05-22
|\
| * Refactor Feather-TraceBjoern B. Brandenburg2008-05-19
| | | | | | | | | | - move platform dependent bits into arch/ - provide a default implementation (used for sparc64)
* | Add Feather-Trace support.Bjoern B. Brandenburg2008-05-22
| | | | | | | | | | | | | | | | - TICK - SCHED1 - SCHED2 - RELEASE - CXS
* | Feather-Trace: support draining of trace bufferBjoern B. Brandenburg2008-05-22
| |
* | C-EDF: Update processor state on task exitJohn Calandrino2008-05-22
| |
* | 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.
* Add the C-EDF plugin.John Calandrino2008-05-18
|
* introduce release_at callback to LITMUS plugin interfaceBjoern B. Brandenburg2008-05-12
| | | | | PFAIR needs to do things a bit differently. This callback will allow plugins to handle synchronous releases differently.
* GSN/PSN: improve lockingBjoern B. Brandenburg2008-05-11
|
* TRACE(): facilitate debuggingBjoern B. Brandenburg2008-05-11
| | | | | | | - don't deadlock on a runqueue lock in case of a bug inside the scheduler - write printk() messages to TRACE() - tell user of TRACE() buffer
* LITMUS Core: delay migration until context switch is completeBjoern B. Brandenburg2008-05-10
| | | | | | Also: - add some memory barriers, to be on the safe side - fix some line breaks
* initialize spin locks in rt_domain code properlyBjoern B. Brandenburg2008-05-10
| | | | | As discovered by John, the old way of initializing the spin locks breaks when rt_domains are allocated dynamically.
* LITMUS: improve coreBjoern B. Brandenburg2008-05-10
| | | | | - give TRACE() messages sequence numbers - remove a some old, unused cruft
* LITMUS: don't let rt_domain deadlock in global pluginsBjoern B. Brandenburg2008-05-10
| | | | | | | | | | | | | | | | | | | | | | | | | | On the T2000, GSN-EDF would eventually deadlock. This was caused by a deadlock involving the release and ready locks of its rt_domain. Usually, the dependency in GSN-EDF is: function held -> required ========================================= enqueue: ready -> release gsnedf_job_release: -> ready arm_release_timer: -> release So far so good. The problem arose when hrtimer detected that the timer being armed had already expired (must have been just a few nanoseconds) and decided to call the callback directly WHILE HOLDING THE RELEASE LOCK. Which led to the following result: function held -> required CPU ==================================================== enqueue: ready -> release 5 gsnedf_job_release: release -> ready 6 We avoid this problem now by dropping the release lock in arm_release_timer() before calling the job release callback.
* LITMUS: Use atomic ops to clear bit.Bjoern B. Brandenburg2008-05-09
| | | | | This is modeled after tasklets. Just writing a 0 does not have the desired effect on SPARC64.
* LITMUS: remove outdated commentBjoern B. Brandenburg2008-05-05
|
* GSN-EDF: log relinking decisionsBjoern B. Brandenburg2008-05-05
| | | | For debugging, make relinking optimizations available in the TRACE() log.
* LITMUS: don't invoke plugin for non-real-time tasksBjoern B. Brandenburg2008-05-05
| | | | The plugins don't care about best-effort tasks. Don't bother them.
* 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: provide more debug infoBjoern B. Brandenburg2008-05-03
| | | | Added one message and improved another.
* Feather-Trace: fix section mismatch warningBjoern B. Brandenburg2008-05-03
| | | | Don't place events in __init functions.
* LITMUS: use no_rqlock_work to avoid ksoftirqd deadlockBjoern B. Brandenburg2008-05-02
| | | | | We can't use tasklets from within the scheduler. User no_rqlock_work instead.
* LITMUS: add framework for carrying out jobs after dropping rq locksBjoern B. Brandenburg2008-05-02
| | | | | Many things can't be done from within the scheduler. This framework should make it easer to defer them.
* LITMUS: rework rt_domain to not cause circular lockig dependenciesBjoern B. Brandenburg2008-05-02
|
* LITMUS: rework job migration codeBjoern B. Brandenburg2008-05-02
| | | | | The old version had a significant window for races with interrupt handlers executing on other CPUs.
* GSN-EDF: add extra debug infoBjoern B. Brandenburg2008-05-02
|
* LITMUS: use litmus_clock() in sync.cBjoern B. Brandenburg2008-05-01
| | | | | sched_clock() is offset from litmus_clock(), jobs were being delayed for long times.
* Feather-Trace: Make inclusion optionalBjoern2008-05-01
| | | | We need to disable Feather-Trace on the Niagara for now, and there is no reason to always include it, anyway.
* LITMUS: reorganize system callsBjoern B. Brandenburg2008-05-01
| | | | | | - this will make it easier to maintain it across multiple platforms and versions - also remove obsolete SRP system call
* FMLP: rename pi->fmlpBjoern B. Brandenburg2008-05-01
| | | | | pi is confusing, there are many PI schemes in the world. We implement the FMLP, thus we should label it as such.
* SRP+FMLP: reorganize codeBjoern B. Brandenburg2008-05-01
| | | | | - split SRP into its own file - rename litmus_sem.c to fmlp.c, since that is what it is
* SRP: improve robustnessBjoern B. Brandenburg2008-05-01
| | | | | | | | The SRP implementation did not correctly address various suspension-related scenarios correctly. Now the need for SRP blocking is tested on each scheduling event. This ensures mutual exclusion under the SRP even in the face of unexpected suspensions, for example due to IO.
* SRP: simplify codeBjoern B. Brandenburg2008-05-01
|
* SRP: record owner in semaphoresBjoern B. Brandenburg2008-05-01
|
* allow real-time tasks access to SRP resources (for setup)Bjoern B. Brandenburg2008-05-01
|
* update SRP implBjoern B. Brandenburg2008-05-01
| | | | This is the first step in cleaning up the SRP implementation.
* 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
* return the number of released tasksBjoern B. Brandenburg2008-05-01
|