| Commit message (Collapse) | Author | Age |
|
|
|
|
| |
In particular, check if a job arrival is triggered from a
clock_nanosleep() call.
|
|
|
|
| |
Need to communicate the intended wake-up time to the plugin wake-up handler.
|
|
|
|
| |
New tracepoint for tracing the completion of sporadic jobs.
|
|
|
|
|
| |
This information is needed to insert ST_COMPLETION records for
sporadic tasks.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Allow plugins to give up when waiting for a stack to become available.
|
| |
|
|
|
|
|
|
|
|
|
| |
Add timestamp tracing macros that reverse on which cores the
timestamps are recorded. This intended to reduce tracing contention if
some cores receive a lot of messages.
These macros are useful for plugins based on message-passing such as
the (non-mainline) G-EDF-MP.
|
| |
|
| |
|
|
|
|
|
|
|
| |
XCALL_{START,END} -- cross-CPU function calls
SEND_XCALL_{START,END} -- cross-CPU function call latency
SCHED_TIMER_{START,END} -- any additional, plugin-specific scheduling timer
TIMER_LATENCY -- latency of plugin-specific timer
|
|
|
|
|
| |
Useful to replace BUG_ON() and WARN_ON() with a non-fatal
TRACE()-based equivalent.
|
|
|
|
| |
Avoid preempting jobs that are about to go to sleep soon anyway.
|
|
|
|
| |
To avoid interfering with Linux's magic reserved IOCTL numbers
|
|
|
|
|
|
|
| |
Rationale: make LITMUS^RT ops available in a way that does not create
merge conflicts each time we rebase LITMUS^RT on top of a new kernel
version. This also helps with portability to different architectures,
as we no longer need to patch each architecture's syscall table.
|
|
|
|
|
|
| |
This patch modifies the previous implementation of hrtimer_start_on() by
now using smp_call_function_single_async() to arm hrtimers on remote
CPU's.
|
|
|
|
|
|
|
| |
Let jobs sleep like regular Linux tasks by suspending and waking them
with a one-shot timer. Plugins can opt into using this implementation
instead of the classic complete_job() implementation (or custom
implementations).
|
| |
|
| |
|
| |
|
|
|
|
| |
release.
|
|
|
|
|
|
| |
__NR_syscalls must be a multiple of 4 for ARM. This patch adds
padding to __NR_syscalls and fixes the missing NR_litmus_syscalls
in include/litmus/unistd_32.h.
|
| |
|
|
|
|
|
| |
Allow userspace to figure out the used-up and remaining budget
of a task.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch adds the core of LITMUS^RT:
- library functionality (heaps, rt_domain, prioritization, etc.)
- budget enforcement logic
- job management
- system call backends
- virtual devices (control page, etc.)
- scheduler plugin API (and dummy plugin)
This code compiles, but is not yet integrated with the rest of Linux.
|
|
|
|
|
|
|
| |
This patch integrates LITMUS^RT's sched_trace_XXX() macros with
Linux's notion of tracepoints. This is useful to visualize schedules
in kernel shark and similar tools. Historically, LITMUS^RT's
sched_trace predates Linux's tracepoint infrastructure.
|
|
|
|
|
|
| |
This patch introduces the sched_trace infrastructure, which in
principle allows tracing the generated schedule. However, this patch
does not yet integrate the callbacks with the kernel.
|
|
|
|
|
| |
This patch adds a basic litmus/litmus.h, which is required for basic
LITMUS^RT infrastructure to compile.
|
|
|
|
| |
This patch adds the PCB extensions required for LITMUS^RT.
|
|
|
|
|
|
|
| |
This patch adds the infrastructure for the TRACE() debug macro.
Conflicts:
kernel/printk.c
|
|
|
|
|
| |
This patch hooks up Feather-Trace's ft_irq_fired() handler with
Linux's interrupt handling infrastructure.
|
|
|
|
|
| |
This patch adds the main infrastructure for tracing overheads in
LITMUS^RT. It does not yet introduce any tracepoints into the kernel.
|
|
|
|
|
| |
This patch adds the ftdev device driver, which is used to export
samples collected with Feather-Trace to userspace.
|
|
This patch adds the simple fallback implementation and creates dummy
hooks in the x86 and ARM Kconfig files.
|