| Commit message (Collapse) | Author | Age |
... | |
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|\ |
|
| |
| |
| |
| |
| |
| | |
__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.
|
|/
|
|
|
|
| |
__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.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Assigning a nice value to LITMUS^RT tasks is meaningless. Bail out
early.
|
|
|
|
| |
This patch fixes a BUG_ON() in litmus/preempt.c.
|
|
|
|
|
| |
SCHED_DEADLINE should not preempt LITMUS^RT tasks, as the LITMUS^RT
scheduling class is positioned above the SCHED_DEADLINE policy.
|
|
|
|
|
|
| |
The rt scheduling class thinks it's the highest-priority scheduling
class around, next to SCHED_DEADLINE. It is not in LITMUS^RT. Don't go
preempting remote cores that run SCHED_LITMUS tasks.
|
| |
|
|
|
|
| |
To keep track of stack usage and to notify plugin, if necessary.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Global plugins require that the plugin be called even if there
currently is no real-time task executing on the local core.
|
| |
|
|
|
|
|
|
| |
Needs to be above stop_machine_class for legacy reasons; the main
plugins were developed before stop_machine_class was introduced and
assume that they are the highest-priority scheduling class.
|
| |
|
| |
|
|
|
|
| |
Check whether a suspension is required at end of schedule().
|
|
|
|
| |
This patch adds context switch tracing to the main Linux scheduler.
|
|
|
|
|
|
|
|
|
|
|
| |
Whenever the kernel checks for rt_task() to avoid delaying real-time
tasks, we want it to also not delay LITMUS^RT tasks. Hence, most
calls to rt_task() should be matched by an equivalent call to
is_realtime().
Notably, this affects the implementations of select() and nanosleep(),
which use timer_slack_ns when setting up timers for non-real-time
tasks.
|
|
|
|
|
| |
Allow LITMUS^RT to do some work when a process is created or
terminated.
|
|
|
|
|
| |
Otherwise, the scheduler state machine becomes confused (and goes into
a rescheduling loop) when stop-machine is triggered.
|
|
|
|
| |
Track when a processor is going to schedule "soon".
|
|
|
|
|
| |
Patch updates ftrace.h to record a litmus_clock() time stamp
in ftrace records.
|
|
|
|
|
|
|
|
| |
If !CONFIG_SCHED_TASK_TRACE, but CONFIG_SCHED_LITMUS_TRACEPOINT, then
we still need to define the tracepoint structures.
This patch should be integrated with the earlier sched_task_trace.c
patches during one of the next major rebasing efforts.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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 table is similar to a file descriptor table. It keeps track of
which "objects" (locks) a real-time task holds a handle to.
|
|
|
|
|
|
|
| |
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 exports the interrupt counter to userspace via the control
page.
|
|
|
|
| |
Remove dummy implementation of is_realtime() in trace.c.
|
|
|
|
|
| |
This patch adds a basic litmus/litmus.h, which is required for basic
LITMUS^RT infrastructure to compile.
|