Skip to content
May 26, 2017
Add P-RES scheduler plugin
P-RES: the partitioned reservation-based scheduler.

A simple partitioned scheduler that provides a reservation environment
on each core, based on the generic reservations code.  Hierarchical
scheduling is not supported in this version.

P-RES: trace sporadic wake-ups

P-RES: use inferred_sporadic_job_release_at()

porting fix: add missing header for module_init()

porting fix: adopt new hrtimer API in P-RES plugin

P-RES: add fork() support

P-RES: don't return -ESRCH on reservation lookup failure

P-RES: improve task admission

- Deal with the fact that task_cpu() is not yet updated for
  currently suspended tasks.
- Provide some feedback via printk().
Mar 24, 2016
PFAIR: don't arm timer for tardy tasks
If the system is overloaded, tasks may be tardy. In that case, do not
arm timers. Rather, add tardy tasks back into the ready queue right
Aug 9, 2015
Add PD^2 scheduler plugin
Jun 7, 2014
Add PD^2 scheduler plugin
Apr 13, 2014
litmus/P-FP: Do not call litmus_clock() when TRACE is disabled
Allow GCC to eliminate litmus_clock(), reducing the average execution time of the multicore lock protocols' unlock critical sections.

Signed-off-by: Roy Spliet <>
Aug 7, 2013
uncachedev: mmap memory that is not cached by CPUs
This patch creates a new character device, uncachedev.
Pages of RAM allocated by this device are not cached by

Uses for such pages:
1) Determining *very* pessimistic emperical worst-
   case execution times.
2) Compare against performance with caches (quantify
   the avg. case benefit).
3) Deterministic memory accesses (access cannot cause a
   cache eviction.)
4) Theoretically, increased performance can be achieved
   by storing infrequently accessed data in uncache pages.

uncachedev allocates pages with the pgprot_noncached() page
attribute for user applications. Since pages allocated by
uncachedev are not locked in memory by default, applications
with any access level may mmap pages with uncachedev.

1) Uncache pages must be MAP_PRIVATE.
2) Remapping not supported.

Usage (user level):
	int size = NR_PAGES*PAGE_SIZE;
	int fd = open("/dev/litmus/uncache", O_RDWR);
	char *data = mmap(NULL, size, PROT_READ | PROT_WRITE,
					MAP_PRIVATE, fd, 0);
	< stuff...>
	munmap(data, size);
Dec 21, 2012
Protect SCHED_LITMUS tasks from reschedules triggered by SCHED_FIFO e…

(BB: edited to include <litmus/litmus.h> to resolve compile error.)
Aug 1, 2012
New Feature: Arbitrary deadlines.
Added support for arbitrary deadlines.

Constraint: Relative deadline must be >= exec cost.

Use: Set relative deadline in rt_task::rdeadline. Set value to 0
     to default to implicit deadlines.

Limitations: PFAIR not supported by this patch. PFAIR updated to
     reject tasks that do not have implicit deadlines.
Jan 30, 2012
Feather-Trace: keep track of interrupt-related interference.
Increment a processor-local counter whenever an interrupt is handled.
This allows Feather-Trace to include a (truncated) counter and a flag
to report interference from interrupts. This could be used to filter
samples that were disturbed by interrupts.
Jan 13, 2011
Feather-Trace: dynamic memory allocation and clean exit
This patch changes Feather-Trace to allocate memory for the minor
devices dynamically, which addresses a long-standing FIXME. It also
provides clean module exit and error conditions for Feather-Trace.
You can’t perform that action at this time.