LITMUSRT Change Log
==============================
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 Bjoern B. Brandenburg (bbb at cs.unc.edu) on 09/24/2009.