LITMUSRT Change Log ==============================
This document is part of the documentation of the LITMUSRT project.
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.