| Commit message (Collapse) | Author | Age |
... | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Fixes a bug in Litmus where processor scheduling states
could become corrupted. Corruption can occur when a
just-forked thread is externally forced to be scheduled
by SCHED_LITMUS before this just-forked thread can complete
post-fork processing. Specifically, before schedule_tail()
has completed.
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
By default, even private writable pages are mapped
with the RW bit disabled in the PTE. This causes a
"minor" page fault when the page is first written
to. To avoid this, make sure that vm_inert_page()
uses the proper page protection bits and mark the
VMA as VM_IO to keep the rest of the VM code out.
|
| |
| |
| |
| |
| | |
Page faults should not happen here. Scream if they do anyway. This is
useful when extending the control page.
|
| |
| |
| |
| |
| |
| | |
vm_insert_page() is the simpler and preferred interface for remapping
individual pages and includes additional error checks. It suffices for
our purposes, so let's use it instead.
|
| |
| |
| |
| |
| |
| | |
The existing admission test failed to test for too-low
priorities. Use the common macro to accept only valid
priorities.
|
| |
| |
| |
| |
| |
| | |
Add a comment to explain how priorities are
interpreted, and provide some useful macros for
userspace.
|
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This patch imports recent upstream changes in Feather-Trace that reduce
register pressure around Feather-Trace triggers.
References: Commits 00713b8 and 225d734 in Feather-Trace.
https://github.com/brandenburg/feather-trace/commit/00713b878636867ce07291c588509b38fa5bf152
https://github.com/brandenburg/feather-trace/commit/225d7348a08682cd87f72b127142bdfd6c0c7890
|
| |
| |
| |
| |
| |
| | |
This patch replicates the fix in commit
f141d730e91283a9bb5cfcb134fcead55d5da0c6
(which applies to GSN-EDF).
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This patch changes how preemptions of jobs without
budget work. Instead of requeuing them, they are now
only added if they are not subject to budget enforcement
or if they have non-zero budget. This allows us to process
job completions that race with preemptions.
This appears to fix a BUG in budget.c:65 reported by Giovani Gracioli.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
litmus.h is accumulating too many things. Since
we already have budget.h, let's stick all budget-related
inline functions there as well.
This patch is merely cosmetic; it does not change
how budget enforcement works.
|
| |
| |
| |
| |
| |
| |
| | |
An efficient binary heap implementation coded in the
style of Linux's list. This binary heap should be able
to replace any partially sorted priority queue based
upon Linux's list.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Enable kernel-style events (tracepoint) for Litmus. Litmus events
trace the same functions as the sched_trace_XXX(), but can be
enabled independently.
So, why another tracing infrastructure then:
- Litmus tracepoints can be recorded and analyzed together (single
time reference) with all other kernel tracing events (e.g.,
sched:sched_switch, etc.). It's easier to correlate the effects
of kernel events on litmus tasks.
- It enables a quick way to visualize and process schedule traces
using trace-cmd utility and kernelshark visualizer.
Kernelshark lacks unit-trace's schedule-correctness checks, but
it enables a fast view of schedule traces and it has several
filtering options (for all kernel events, not only Litmus').
|
| | |
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
include/litmus/budget.h
include/litmus/litmus.h
include/litmus/rt_param.h
include/litmus/sched_trace.h
include/litmus/trace.h
include/trace/events/litmus.h
litmus/Makefile
litmus/budget.c
litmus/ftdev.c
litmus/jobs.c
litmus/litmus.c
litmus/locking.c
litmus/preempt.c
litmus/rt_domain.c
litmus/sched_gsn_edf.c
litmus/trace.c
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|