aboutsummaryrefslogtreecommitdiffstats
path: root/include
Commit message (Collapse)AuthorAge
* 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
|
* hrtimer: remove unused flag of pull implementationBjoern B. Brandenburg2009-05-03
| | | | The flag was racy anyway and could not be used safely.
* litmus core: add dump-trace-buffer magic sysrqBjoern B. Brandenburg2009-05-02
| | | | Pump stuff from the TRACE() buffer to printk() on demand.
* 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.
* add support for tracing IPI latencyBjoern B. Brandenburg2009-04-28
|
* 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
|
* 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.
* 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: 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.
* Merge commit 'origin/master' into rtss09Bjoern B. Brandenburg2009-04-18
|\
| * Merge branch 'master' of ssh://cvs/cvs/proj/litmus/repo/litmus2008Bjoern B. Brandenburg2009-04-18
| |\
| * | litmus core: remove no longer used sorted lists codeBjoern B. Brandenburg2009-04-18
| | | | | | | | | | | | No plugin uses it anymore.
* | | litmus core: add concurrent heap impl.Bjoern B. Brandenburg2009-04-18
| | |
* | | litmus core: fix CPU time accountingBjoern B. Brandenburg2009-04-11
| | | | | | | | | | | | | | | Tell Linux how much time each RT task consumed. This fixes the behavior of CPU timers and tools like top.
* | | make CONFIG_SCHED_TASK_TRACE compile on sparc64Bjoern B. Brandenburg2009-04-11
| | | | | | | | | | | | It won't compile with missing prototypes.
* | | rt_domain: use per-event timersBjoern B. Brandenburg2009-04-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Don't multiplex one timer among all release heaps. The hrtimer subsystem can handle many timers and is heavily optimize; make use of this fact. This also greatly simplifies the actual callback, which should help to bring down release overheads. This also saves memory as we do not need to maintain a separate heap of (release) heaps.
* | | rt_domain: do not allocate/free memory in release queue handlingBjoern B. Brandenburg2009-04-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes a bunch of bugs: - a memory leak (some heap nodes were never reclaimed) - a locking rules violation (memory allocation can wake up kswapd, which causes a circular locking dependency between the release queue lock and the run queue locks Also, allocating memory in a hot path was never particularly clever. This patch pre-allocates memory at task-creation time, but does not change how the release queue works overall.
* | | add GQ-EDFBjoern B. Brandenburg2009-04-09
| | | | | | | | | | | | Support for Global Quantum-Driven EDF
* | | move task present flag from PFAIR to Litmus coreBjoern B. Brandenburg2009-04-02
| |/ |/| | | | | | | Other quantum-based plugins also require the present flag. Hence, move it to the core data structure
* | add sys_null_call() to enable system call overhead tracingBjoern B. Brandenburg2009-03-02
|/ | | | | A simple noop system call to record kernel entry and exit times.
* sched_trace: provide dummyBjoern B. Brandenburg2008-11-10
|
* LITMUS: provide per-plugin setup/tear down callbacksBjoern B. Brandenburg2008-11-06
| | | | Give plugins a chance to set up state and clean up.
* LITMUS: export CPU stagger offsetBjoern B. Brandenburg2008-11-06
| | | | Let scheduler plugins inquire stagger offsets.
* sched_trace: add task system release tracingBjoern B. Brandenburg2008-11-03
|
* 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.
* litmus: provide rt task phase access macroBjoern B. Brandenburg2008-10-06
| | | | rationale: uniformity
* ftdev: provide a callback to test whether a device can be openedBjoern B. Brandenburg2008-10-06
| | | | This is useful to deny opening per-cpu buffers if a CPU is not online.
* ftdev: don't forget to disable eventsBjoern B. Brandenburg2008-09-17
| | | | | Otherwise required buffers may not be present anymore. This patch also fixes some minor initialization issues.
* Feather-Trace: use ftdev for overhead tracingBjoern B. Brandenburg2008-09-17
| | | | Much cleaner code now.
* feather-trace: introduce ftdev device driverBjoern B. Brandenburg2008-09-17
| | | | This will help to redruce code duplication in the long run.
* Merge branch 'master' into sched_traceBjoern B. Brandenburg2008-09-16
|\
| * time: prevent the loop in timespec_add_ns() from being optimised awaySegher Boessenkool2008-09-16
| | | | | | | | | | | | | | | | | | | | Since some architectures don't support __udivdi3(). Signed-off-by: Segher Boessenkool <segher@kernel.crashing.org> Cc: john stultz <johnstul@us.ibm.com> Cc: Ingo Molnar <mingo@elte.hu> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* | sched_trace: provide new event record definitionsBjoern B. Brandenburg2008-09-16
|/ | | | | Each record is exactly 24 bytes (= three 64bit integers) long. We accept possibly truncated fields in order to save some space.
* 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.
* binomial heaps: reuse heap_node slab for allocationsBjoern B. Brandenburg2008-09-11
| | | | | | | We already have a heap_node slab in litmus.c. We can reuse it for the other allocations. This patch also fixes a misnaming of heap_node_alloc/free.
* 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
* this version is more efficient in the case of heavy-contentionBjoern B. Brandenburg2008-09-08
|
* replace TTS locks with ticket locksBjoern B. Brandenburg2008-09-05
|
* litmus heaps: initialize min to nullBjoern B. Brandenburg2008-07-18
| | | | This fixes a copy&paste bug reported by John.
* 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
|
* 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: make SCHED only depend on nextBjoern B. Brandenburg2008-05-22
|