aboutsummaryrefslogtreecommitdiffstats
path: root/litmus/rt_domain.c
Commit message (Collapse)AuthorAge
* rt_domain_t: disable timer TRACE() spam by defaultBjoern B. Brandenburg2010-10-19
| | | | | | | These messages are highly useful when debugging races, but they quickly litter the log when looking for something else. We keep them around, but by default they shouldn't show up.
* rt_domain_t: add add_release_on()Bjoern B. Brandenburg2010-10-18
| | | | | | | | This API addition allows the calling code to override the release master for a given rt_domain_t object. This is particularly useful if a job is supposed to migrate to a particular CPU. This need arises for example in semi- partitioned schedulers.
* Bugfix: avoid conditional compilation dependent errorAndrea Bastoni2010-07-16
| | | | | | | | | | | | If RELEASE_MASTER is not selected the "info" hrtimer_start_on_info structure in release_heap structure is not visible and trying to access "info" from reinit_release_heap() causes the following error: error: 'struct release_heap' has no member named 'info' info should not be referenced if RELEASE_MASTER is not used. The problem was first reported by Glenn <gelliott@cs.unc.edu>
* Bugfix: change __ARCH_HAS_SEND_PULL_TIMERS in CONFIG_ARCH_HAS_SEND_PULL_TIMERSAndrea Bastoni2010-06-12
| | | | | | | | | Commit "0c527966 Make release master support optional" uses __ARCH_HAS_SEND_PULL_TIMERS instead of CONFIG_ARCH_HAS_SEND_PULL_TIMERS (introduced in commit 0fb33c99) to conditionally compile a pull timer related code in rt_domain.c. This code is disabled and pull-timer's state is no longer properly reset. Therefore, a pulled timer cannot be armed anymore.
* Make release master support optionalBjoern B. Brandenburg2010-06-01
| | | | | | | | Introduces CONFIG_RELEASE_MASTER and makes release master support dependent on the new symbol. This is useful because dedicated interrupt handling only applies to "large" multicore platforms. This will allow us to not implement smp_send_pull_timers() for all platforms.
* Change most LitmusRT spinlock_t in raw_spinlock_tAndrea Bastoni2010-05-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adapt to new schema for spinlock: (tglx 20091217) spinlock - the weakest one, which might sleep in RT raw_spinlock - spinlock which always spins even on RT arch_spinlock - the hardware level architecture dependent implementation ---- Most probably, all the spinlocks changed by this commit will be true spinning lock (raw_spinlock) in PreemptRT (so hopefully we'll need few changes when porting Litmmus to PreemptRT). There are a couple of spinlock that the kernel still defines as spinlock_t (therefore no changes reported in this commit) that might cause us troubles: - wait_queue_t lock is defined as spinlock_t; it is used in: * fmlp.c -- sem->wait.lock * sync.c -- ts_release.wait.lock - rwlock_t used in fifo implementation in sched_trace.c * this need probably to be changed to something always spinning in RT at the expense of increased locking time. ---- This commit also fixes warnings and errors due to the need to include slab.h when using kmalloc() and friends. ---- This commit does not compile.
* Measure timer re-arming in the proper locationAndrea Bastoni2010-05-29
| | | | | | hrtimers are properly rearmed during arm_release_timer() and no longer after rescheduling (with the norqlock mechanism of 2008.3). This commit accordingly updates the locations where measures are taken.
* Refactor binomial heap names: heap -> bheapAndrea Bastoni2010-05-29
| | | | | | - Binomial heap "heap" names conflicted with priority heap of cgroup in kernel - This patch change binomial heap "heap" names in "bheap"
* [ported from 2008.3] Add release-master supportAndrea Bastoni2010-05-29
|
* [ported from 2008.3] Add GSN-EDF pluginAndrea Bastoni2010-05-29
| | | | | | - insert arm_release_timer() in add_relese() path - arm_release_timer() uses __hrtimer_start_range_ns() instead of hrtimer_start() to avoid deadlock on rq->lock.
* [ported from 2008.3] Add rt_domain_t supportAndrea Bastoni2010-05-29
Still to be merged: - arm_release_timer() with no rq locking