aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAge
...
* 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.
* concurrent heap: disable lockdepBjoern B. Brandenburg2009-04-19
| | | | | | Lockdep doesn't like the heap's locking pattern. We'd have to allocate a locking class for each cheap_node, which is a bit excessive memory-wise.
* GQ-EDF: avoid compile warning w/ CONFIG_SCHED_DEBUG_TRACEBjoern B. Brandenburg2009-04-19
| | | | Variable declarations go first.
* GSN-EDF: remove old and wrong commentBjoern B. Brandenburg2009-04-19
|
* 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
| | |
* | | add G-EDF, a version of GSN-EDF with synchronization support ripped outBjoern B. Brandenburg2009-04-15
| | | | | | | | | | | | a good base version for other schedulers
* | | GQ-EDF: merge heaps if debug not enabledBjoern B. Brandenburg2009-04-15
| | | | | | | | | | | | | | | | | | Doing it task-by-task really only makes sense if we are going to trace every merged task in the debug trace.
* | | 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 release_heap slabBjoern B. Brandenburg2009-04-09
| | | | | | | | | | | | Prepare for centralized allocation of release heaps.
* | | litmus core: use heap node allocation APIBjoern B. Brandenburg2009-04-09
| | | | | | | | | | | | Avoid duplication.
* | | add diagnostic to EDF priority functionBjoern B. Brandenburg2009-04-09
| | | | | | | | | | | | | | | Comparing a task against itself shouldn't happen if everything works correctly.
* | | add GQ-EDFBjoern B. Brandenburg2009-04-09
| | | | | | | | | | | | Support for Global Quantum-Driven EDF
* | | rt_domain: don't deadlock in hrtimer_cancel()Bjoern B. Brandenburg2009-04-08
| | | | | | | | | | | | | | | | | | | | | | | | In the infrequent case that arm_release_timer() is called while the timer callback is executing on the same CPU (e.g., a timer tick occurred), then hrtimer_cancel() will get stuck in an infinite loop. This can be avoided by using hrtimer_try_to_cancel() instead.
* | | litmus core: respect preempt_count hackBjoern B. Brandenburg2009-04-08
| | | | | | | | | | | | | | | Don't confuse the plugins by calling task_block()/wake_up() when they wouldn't have been called without the race.
* | | repair last commitBjoern B. Brandenburg2009-04-02
| | |
* | | 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
* | | fix permssions in litmus directoryBjoern B. Brandenburg2009-04-02
| |/ |/|
* | Merge branch 'syscall_ohead'Bjoern B. Brandenburg2009-03-02
|\ \
| * | 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.
* | | fixed sizeof usage to conform to linux kernel coding style. so,Mitchell Jareo2009-03-01
|/ / | | | | | | | | | | | | | | struct x* p = kmalloc(sizeof(struct x), ....) becomes struct x* p = kmalloc(sizeof(*p), ...) for example.
* / LITMUS: remove trailing whitespace for release2008.2Bjoern B. Brandenburg2008-12-01
|/
* sched_trace: provide dummyBjoern B. Brandenburg2008-11-10
|
* PFAIR: improve blocking/wake_up codeBjoern B. Brandenburg2008-11-10
| | | | | | - better tracing - cleaner release code - add FIXME
* PFAIR: fix schedulerBjoern B. Brandenburg2008-11-10
| | | | | - fix end of tick preempt logic - make scheduler resilient against missed quanta
* PFAIR: improve tracing of advance_subtask()Bjoern B. Brandenburg2008-11-10
|
* PFAIR: reuse cur_sub_release()Bjoern B. Brandenburg2008-11-10
| | | | Quiets a warning.
* PFAIR: increase max period to 2000Bjoern B. Brandenburg2008-11-10
| | | | | 1000 was limiting since the sync. release code wants a 1 second delay per default.
* PFAIR: clean up debug tracingBjoern B. Brandenburg2008-11-10
| | | | Much of the tracing is not needed anymore.
* PFAIR: re-initialize times when plugin is activatedBjoern B. Brandenburg2008-11-10
|
* PFAIR: store CPU staggering offset in CPU stateBjoern B. Brandenburg2008-11-10
| | | | Used to correct for staggering in time->quanta computations
* ftdev: fix disabling of eventsBjoern B. Brandenburg2008-11-10
| | | | The list traversal code was horribly broken.
* GSN-EDF: trace job releases of tardy tasksBjoern B. Brandenburg2008-11-10
|
* PFAIR: fix sync. release callbackBjoern B. Brandenburg2008-11-07
| | | | | The previous version did not get the release time right in most cases.
* sched_trace: record 0 as job number for system eventsBjoern B. Brandenburg2008-11-07
| | | | | -1 doesn't make sense for an unsigned field and screws up the log viewer.
* 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.