| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes a regression introduced by the RTSS'09
improvements.
Just calling unlink() on any task is not safe: it might
reside in a release heap. This was done in the case
that a new blocker increases a lock holder's priority.
To avoid crashing in this case, the FMLP code was changed
to be more careful when propagating an inherited priority.
The code now detects three different scenarios and uses
heap_decrease() to update the position of the lock holder's
heap node. This fixes a simple test case.
|
|
|
|
|
|
|
| |
Used to adjust position of heap node after
the key of the node was decreased
(= made more important). Cannot be used if
key was increased (= made less important).
|
|
|
|
| |
Stick get_release() to the rest of the bunch.
|
| |
|
| |
|
|
|
|
|
| |
This removes the plugins created for RTSS'09 that
we don't want to track in mainline Linux.
|
|
|
|
|
|
|
|
|
|
| |
Fix the operand constraints for the segment accessor functions,
{rd,wr}{fs,gs}*. In particular, the 8-bit functions used "r"
constraints instead of "q" constraints.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|
|
|
|
| |
This fixes a bug that lead to task stacks being used s
simultaneously on two CPUs.
|
|
|
|
| |
Line breaks, ammend comments, etc.
|
|
|
|
|
|
| |
If schedule() was invoked twice in a retry, then the scheduled
task might have not been "picked" properly because it was
still scheduled.
|
| |
|
|
|
|
|
|
|
|
| |
This is a really dirty hack, but works for now since our real-time
tasks do not use hrtimer_wakeup().
The need for this will go away when we port since newer versions of the
Linux kernel allow timers to be activated directly in the scheduler.
|
|\
| |
| |
| | |
ssh://cvs.cs.unc.edu/cvs/proj/litmus/repo/papers/RTSS09/litmus2008 into rtss09
|
| |
| |
| |
| | |
Fixes fa940ad71184dec3d156b7dd673ee38067e7c0f6.
|
|/
|
|
|
|
| |
If a timer happens to go off at the wrong time on the wrong CPU, the old
code could deadlock. This avoided in the new version by dropping the
release_lock before using the hrtimer API.
|
|
|
|
|
| |
Check if an already-linked task must be re-inserted into
the ready queue.
|
|
|
|
|
|
|
|
| |
This fixes a bug observed under G-EDF:
A task with extremely low wcet budget could get scheduled
and re-added to its own release heap while the heap was still
in use in the same timer callback that released the task.
Havoc, predictably, ensued.
|
|
|
|
| |
The flag was racy anyway and could not be used safely.
|
|
|
|
|
|
| |
Don't just blindly overwrite the timers if they could
be still in use. The the use-after-free bug was observed
under Qemu.
|
| |
|
| |
|
| |
|
|
|
|
| |
Pump stuff from the TRACE() buffer to printk() on demand.
|
|
|
|
|
| |
If the timeout was realy close and the timing unfortunate, the
timer callback got invoked twice, with oopsing consequences.
|
|
|
|
|
|
| |
Those functions are pretty huge, and used in a couple of plugins.
This should save a lot of space, make debugging with objdump much easier,
and maybe it even has some I$ benefit.
|
|
|
|
| |
The letter 'q' is already taken in 2.6.24.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
seems to run in QEMU
|
|
|
|
| |
Basically same as G-EDF.
|
|
|
|
| |
Don't relink to release master.
|
|
|
|
| |
Factor out ftdev support from overhead tracing.
|
|
|
|
| |
Removes a compile warning on sparc64.
|
| |
|
|
|
|
|
|
| |
The current release_master setting is copied when activating
the plugin. Changing it during execution is currently not
supported.
|
| |
|
|
|
|
|
| |
Let user space set which CPU should handle releases. It is up
to plugins to make use of this information.
|
| |
|
|
|
|
|
| |
move the switch_from/switch_to trace macros so that the
scheduling overhead shows up more clearly in the traces
|
|
|
|
|
| |
A release master is a CPU that takes all timer interrupts for
release of a given rt_domain_t. By default off.
|
|
|
|
| |
this was never strictly required, so we might as well avoid it
|
| |
|
|
|
|
| |
this removes a blatant case of copy&paste reuse
|
|
|
|
|
| |
This establishes the architectures dependent bits for hrtimer_start_on()
on x86-32.
|
|
|
|
|
| |
This depends on the ability to send the special 'pull_timers' IPI
even with IRQs disabled.
|
| |
|
|
|
|
| |
Helps when debugging wake-up related crashes.
|