| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds the PFAIR plugin. The implementation is based on an earlier version
developed by John Calandrino.
Features:
- supports aligned and staggered quanta
- supports early releasing
- uses mergable heaps to limit overheads
This version still has a couple of limitations:
- no support for sporadic; all tasks are assumed to be periodic
- tasks are limited to a maximum period of 1000 quanta
- overload (especially in the tick) is not handled gracefully
|
| |
|
|
|
|
|
| |
The default implementation contained a bug in a macro.
Also, add a cast to silence the compiler.
|
| |
|
| |
|
|\ |
|
| |
| |
| |
| |
| | |
- move platform dependent bits into arch/
- provide a default implementation (used for sparc64)
|
|/
|
|
|
|
|
|
| |
- TICK
- SCHED1
- SCHED2
- RELEASE
- CXS
|
|
|
|
|
|
| |
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.
|
|\ |
|
| |
| |
| |
| |
| | |
PFAIR needs to do things a bit differently. This callback
will allow plugins to handle synchronous releases differently.
|
|/
|
|
| |
Make code more readable and shorter.
|
|
|
|
|
| |
- give TRACE() messages sequence numbers
- remove a some old, unused cruft
|
|
|
|
|
| |
This change fixes a race where a job could be executed on more than one
CPU, which to random crashes.
|
|
|
|
|
| |
We can't use tasklets from within the scheduler.
User no_rqlock_work instead.
|
|
|
|
|
| |
Many things can't be done from within the scheduler.
This framework should make it easer to defer them.
|
| |
|
|
|
|
| |
We need to disable Feather-Trace on the Niagara for now, and
there is no reason to always include it, anyway.
|
|
|
|
|
|
| |
- this will make it easier to maintain it across multiple
platforms and versions
- also remove obsolete SRP system call
|
|
|
|
|
| |
pi is confusing, there are many PI schemes in the world.
We implement the FMLP, thus we should label it as such.
|
|
|
|
|
|
|
|
| |
The SRP implementation did not correctly address various
suspension-related scenarios correctly. Now the need for
SRP blocking is tested on each scheduling event. This ensures
mutual exclusion under the SRP even in the face of unexpected
suspensions, for example due to IO.
|
|
|
|
| |
This is the first step in cleaning up the SRP implementation.
|
|
|
|
|
| |
- 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 adds the internals for two new systems calls:
- sys_wait_for_ts_release()
- sys_release_ts()
The first system call suspends a task until the task systems is
released with the second system call.
|
|
This introduces the core changes ported from LITMUS 2007.
The kernel seems to work under QEMU, but many bugs probably remain.
|