| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Tasks can now be PERIODIC or SPORADIC.
PERIODIC tasks do not have their job number incremented
when they wake up and are tardy. PERIODIC jobs must
end with a call to sys_complete_job() to set up their next
release. (Not currently supported by pfair.)
SPORADIC tasks _do_ have their job number incremented when
they wake up and are tardy. SPORADIC is the default task
behavior, carrying forward Litmus's current behavior.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Nesting of locks was never supported in LITMUS^RT since
the required analysis does not exist anyway. That is, as
defined in the literature, the protocols implemented
in LITMUS^RT have not been studied in conjunction with
nested critical sections.
In LITMUS^RT, attempting to nest locks could lead to
silent or not-so-silent bugs. This patch makes this
restriction explicit and returns EBUSY when a process
attempts to nest resources.
This is enforced on a protocol-by-protocol basis,
which means that adding protocols with support for
nesting in future versions is not affected by this
change.
Exception: PCP and SRP resources may be nested,
but not within global critical sections.
|
|
|
|
|
| |
When the config parameter is NULL, just default to the local CPU,
which is what we want in 99% of the cases anyway.
|
|
|
|
|
|
|
| |
In some cases, the PCP priority inheritance code triggered a
(defensive) BUG_ON() in fp_common.c. This shuffles the order of
operations a bit to be compliant with the restriction that tasks are
never compared against themselves.
|
|
|
|
|
|
|
|
| |
This patch removes the flags RT_F_SLEEP and RT_F_RUNNING
as their name is misleading. This patch replaces them with
a 'completed' field in struct rt_param.
Signed-off-by: Manohar Vanga <mvanga@mpi-sws.org>
|
|
|
|
|
|
|
| |
This patch fixes a warning about an unused label in sched_pfp.c
when CONFIG_LITMUS_LOCKING is not set.
Signed-off-by: Manohar Vanga <mvanga@mpi-sws.org>
|
|
|
|
| |
No suspended task should ever be queued in this plugin.
|
|
|
|
|
| |
Crash and burn if an expected preemption didn't happen. This is useful
to flag any bugs in the queue management code...
|
|
|
|
| |
It's CONFIG_LITMUS_LOCKING, not just CONFIG_LOCKING...
|
|
|
|
|
|
| |
boost_priority() is only applied to already-scheduled tasks. Remove
the (untested and unneeded) case handling unscheduled tasks, which was
likely not correct anyway.
|
|
|
|
|
| |
When a job was tardy, the plugin failed to invoke sched_trace. This
caused ugly "holes" in the visualized schedule.
|
|
|
|
|
|
|
| |
Due to some mistake in the past, PSN-EDF was missing a check for
preemptions when a task resumes. P-FP adopted it by virtue of
copy&paste. This patch makes sure that a preemption is triggered when
a higher-priority task is added to the ready queue.
|
|
|
|
|
|
| |
The existing admission test failed to test for too-low
priorities. Use the common macro to accept only valid
priorities.
|
|
|
|
|
| |
Move declaration of 'cpu' out of #ifdef block, it's also needed for
CONFIG_LITMUS_LOCKING.
|
|
|
|
| |
Prior to that it was only used internally for DPCP
|
|
dissertation (branch bbb-diss) to current
version of litmus
This is needed for ongoing projects
I took the unchanged code but removed some leftovers
of OMLP which is not implemented
|