summaryrefslogblamecommitdiffstats
path: root/doc/changes.txt
blob: 2b40e900642ff6081c6a2d9e3eb3559b9294d7f2 (plain) (tree)






























































































                                                                                                                        
LITMUS<sup>RT</sup> Change Log
==============================

<div class="preamble">
This document is part of the documentation of the <a href="../index.html">LITMUS<sup>RT</sup> project</a>.
</div>

2008.2 -> 2008.3
----------------

- New feature: `sys_null_call()`, a dummy system call that simplifies the process
  of determining system call overheads [`litmus/litmus.c`].

- New feature: support for starting timers on remote CPUs via
  `hrtimer_start_on()` [`kernel/hrtimer.c`].

- New feature: support dedicated release handling in GSN-EDF and a
  corresponding `/proc` interface [`litmus/rt_domain.c`, `litmus/sched_gsn_edf.c`,
  `litmus/litmus.c`].

- New feature: support IPI latency tracing [`litmus/trace.c`].

- Warn if a task's priority is compared against itself [`litmus/edf_common.c`].

- Remove duplicated code in heap_node allocation and allocate heap_node structs
  from a dedicated slab [`litmus/litmus.c`].

- Avoid memory allocation/de-allocation in the release queue handling hot-path
  [`litmus/rt_domain.c`]

- Use per-event hrtimers instead of multiplexing all future releases onto a
  single timer. Linux's hrtimers are cheap enough to do this, and it removes
  complexity.

- Uninline binomial heap implementation to reduce code size [`litmus/heap.c`].

- Assorted minor debugging improvements.

- Minor code cleanups.

- Bugfix: use `is_running()` in `litmus_schedule()` to test for task state change
  race; otherwise plugins might get confused due to unexpected
  `task_block()`/`wake_up()` calls.

- Bugfix: avoid deadlock in `hrtimer_cancel()`; use `hrtimer_try_to_cancel()`
  instead [`litmus/rt_domain.c`].

- Bugfix: avoid race that lead to arming the same timer twice
  [`litmus/rt_domain.c`].

- Bugfix: avoid use-after-free race in `release_heap` [`litmus/rt_domain.c`].

- Bugfix: avoid rare deadlock between timer base lock and release lock
  [`litmus/rt_domain.c`].

- Bugfix: fix compilation with `CONFIG_SCHED_TASK_TRACE` on `sparc64`
  [`include/litmus/sched_trace.h`].

- Bugfix: fix Linux execution time accounting in Litmus scheduling class so
  that `top(1)` and `ps(1)` work again [`litmus/sched_litmus.c`].

- Bugfix: make sure magic sysrq hotkeys do not collide [`litmus/litmus.c`].

- `liblitmus`: switch to `scons` build system.

- `liblitmus`: support `x86-64`->`i386` cross compilation.

- `liblitmus`: add `cycles` tools to simplify measuring of CPU cycles per
  second.

- `liblitmus`: support `null_call()` system call and add `null_call` tool (for
  system call overhead measurements).

- `liblitmus`: improved diagnostic output if `setsched` fails.

- `liblitmus`: support fractional costs and periods in `rtspin`.

- `liblitmus`: improve `release_ts` with `-w` (wait for all tasks) and `-f`
  (wait for specified number of tasks) options.

- `liblitmus`: remove outdated tests (`mode_test`, `np_test`, and `wait_test`).

- `liblitmus`: remove `sched_trace` support. The removed code will be part of a
  future standalone `sched_trace` library.

- `ft_tools`: switch to `scons` build system.

- `ft_tools`: support `x86-64`->`i386` cross compilation.

- `ft_tools`: support for IPI latency measurements (`SEND_RESCHED`).


Change History
--------------
- Initially created by <a href="http://www.cs.unc.edu/~bbb">Bjoern B. Brandenburg</a> (bbb at cs.unc.edu) on 09/24/2009.