aboutsummaryrefslogtreecommitdiffstats
path: root/litmus
Commit message (Collapse)AuthorAge
...
* | | 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
|/
* 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.
* PFAIR: emit sched_trace() eventsBjoern B. Brandenburg2008-11-06
| | | | This is required to visualize the schedule.
* PFAIR: fix debugging macrosBjoern B. Brandenburg2008-11-06
| | | | The arguments were not printed correctly.
* PFAIR: deschedule real-time tasks when they become ineligibleBjoern B. Brandenburg2008-11-06
| | | | | | The reschedule test in scheduler_tick() was missing the case when the CPU has to preempt a real-time task in favor of background work.
* ftdev: don't lose data if task is interruptedBjoern B. Brandenburg2008-11-03
|
* ftdev: don't get stuck in endless loopBjoern B. Brandenburg2008-11-03
| | | | | This bug created unkillable tasks if the first event did not match the event that was being disabled.
* 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: add task system release tracingBjoern B. Brandenburg2008-11-03
|
* sched_trace: use litmus_clock()Bjoern B. Brandenburg2008-10-28
| | | | Using both sched_clock() and litmus_clock() leads to garbled traces.
* PFAIR: fix priority functionJohn M. Calandrino2008-10-15
| | | | | Due to bad ordering of ()-pairs, the priority function was not correct. This should fix it.
* litmus: error out in ENOMEM caseBjoern B. Brandenburg2008-10-06
| | | | If we can't allocate heap nodes then we can't admit RT tasks.
* 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.
* 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.
* sched_trace: make inclusion optionalBjoern B. Brandenburg2008-09-16
| | | | We don't always need the file in the kernel.
* 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.