| Commit message (Collapse) | Author | Age |
|
|
|
|
| |
This fixes a bug that lead to task stacks being used s
simultaneously on two CPUs.
|
| |
|
|
|
|
| |
this removes a blatant case of copy&paste reuse
|
| |
|
| |
|
|
|
|
|
| |
Not-yet-released jobs were not properly queued because of an overly complicated
and wrong requeue implementation. Found by visualizing sched_traces.
|
|
|
|
|
| |
This provides and hooks up a new made-from-scratch sched_trace()
implementation based on Feather-Trace and ftdev.
|
|
|
|
|
| |
This patch fixes some minor issues that inadvertedly crept in during
development. Found in John's review.
|
|
|
|
|
|
| |
This should be faster on high CPU counts.
The list-based implementation was O(1) + O(N) for a position update.
The heap-based implementation is O(log N) + O(log N).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of having hrtimers for each task, we now have only
one hrtimer per rt_domain. To-be-released tasks are grouped in
mergable heaps and presented as a bunch on each release.
This approach should allow us to reduce the worst-case overhead
at hyperperiod boundaries significantly.
1) less hrtimer overhead
2) less calls to the active plugin
3) only one CPU handles releases at a time
4) (2) & (3) should bring down lock contention significantly
|
| |
|
|
|
|
| |
Without this change, a BUG_ON() in schedule() triggers.
|
|
|
|
|
|
| |
The list-based priority queues did not perform well on the Niagara T2000.
This heap-based implementation should perform much faster when queues
are long.
|
| |
|
|
|
|
| |
For debugging, make relinking optimizations available in the TRACE() log.
|
|
|
|
| |
Make CPU state available to gdb.
|
|
|
|
| |
Blocking and preemptions must take precedence over forced job completions.
|
|
|
|
|
| |
This change fixes a race where a job could be executed on more than one
CPU, which to random crashes.
|
| |
|
| |
|
|
|
|
|
| |
- don't let SRP be active under GSN-EDF
- later, don't let FMLP be active under PFAIR, either
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
litmus/edf_common.c
litmus/sched_gsn_edf.c
litmus/sched_psn_edf.c
Minor clashes between sched_clock() -> litmus_clock() and jobs.c refactoring
merged by hand. The result has been compile-tested.
|
| |
| |
| |
| | |
John's proposal for how to release jobs with hrtimers.
|
|/ |
|
|
This introduces the core changes ported from LITMUS 2007.
The kernel seems to work under QEMU, but many bugs probably remain.
|