| Commit message (Collapse) | Author | Age |
... | |
|
|
|
|
| |
The platform code does not synchronize anything, so make sure there's
only one caller at any time.
|
| |
|
| |
|
|
|
|
|
| |
Mirror what ftrace does to ensure that we can patch up the text
segment.
|
|
|
|
|
|
|
| |
This file is indirectly included in a _a lot_ of Linux. A generic name
like TRACE causes a symbol clashes in drivers, SquashFS, etc.
To avoid this, use only the LITMUS-prefixed version in preempt.h.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Even if a kernel is relocatable, the if-based implementation of
Feather-Trace can still work. So don't hide these options.
|
|
|
|
|
| |
Don't forget to charge *current* reservation before its (potentially)
only client departs.
|
|
|
|
| |
The comment regarding hrtimer_start() is no longer valid in Linux 4.9.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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().
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PFAIR: fix wrong memset()
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
away.
PFAIR: use sched_trace_last_suspension_as_completion()
PFAIR: use inferred_sporadic_job_release_at()
rebase fix: use new hrtimer API in PFAIR plugin
|
|
|
|
|
|
|
|
|
|
| |
C-EDF: fix bad memset()
C-EDF: use sched_trace_last_suspension_as_completion()
C-EDF: use inferred_sporadic_job_release_at()
C-EDF: include np.h
|
|
|
|
|
|
|
|
|
|
|
|
| |
P-FP: fix wrong memset()
P-FP: use sched_trace_last_suspension_as_completion()
P-FP: use inferred_sporadic_job_release_at()
P-FP: include np.h
P-FP: improve debug tracing
|
|
|
|
|
|
|
|
|
|
| |
GSN-EDF: fix wrong memset()
GSN-EDF: use sched_trace_last_suspension_as_completion()
GSN-EDF use inferred_sporadic_job_release_at()
GSN-EDF: include np.h
|
|
|
|
|
|
|
|
|
|
| |
PSN-EDF: fix wrong memset()
PSN-EDF: use sched_trace_last_suspension_as_completion()
PSN-EDF: use inferred_sporadic_job_release_at
PSN-EDF: include np.h
|
| |
|
|
|
|
|
| |
To intercept absolute-timed nanosleeps relative to CLOCK_MONOTONIC,
which are likely related to periodic job arrivals.
|
|
|
|
|
|
|
| |
When tasks add timers that have already expired (e.g., when preempted
during schedule_hrtimeout), we should not use the expriration time as
the reference time point, but rather the time when the timer was added
(the delay then includes activation of ksoftirqd, etc.).
|
| |
|
| |
|
|
|
|
|
|
| |
Record interrupt latency for tasks that use nanosleep or some other
interface that ends up using a hrtimer_sleeper struct to trigger the
wakeup of the task when the next job is released.
|
| |
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Allow LITMUS^RT to do some work when a process is created or
terminated.
|
| |
|
| |
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
| |
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".
|