aboutsummaryrefslogtreecommitdiffstats
path: root/litmus/rt_domain.c
Commit message (Collapse)AuthorAge
* Tasks are now scheduled using serversrtas12-mc-beta-expJonathan Herman2011-10-14
|
* paranoid androidJonathan Herman2011-10-14
|
* Add level-A release and remove some bad time-trace macros.Christopher Kenna2011-10-11
|
* Fixed level-A crash when cancel task executionJonathan Herman2011-10-10
|
* Allow events to be cancelled when their list is processedJonathan Herman2011-10-09
|
* Fixed bug where finish switch could strand level-C tasks in neverlandJonathan Herman2011-10-09
|
* Fixed timer issue and atomic remove issue in level A domain.Jonathan Herman2011-10-08
| | | | | | | | | | | Timers had an issue where they couldn't be cancelled before they migrated. Now when you set the start_on_info to inactive, it will prevent a timer from being armed. When a task is being blocked and preempted concurrently, the blocking code needs to be able to prevent the task from being scheduled on another CPU. This did not work for CE domains. Added a per-domain remove function which, for ce domains, will prevent a task from being returned by the domain.
* Debug commit.Christopher Kenna2011-09-30
| | | | | | | Some things are working, but the kernel panics when you try and deallocate an event group. Committed so Jonathan can look at it.
* Refactor timer merging and add it to CE plugin.Christopher Kenna2011-09-30
| | | | | | | | | | | | | | | | THIS CODE IS UNTESTED We now initialize one event group for each cpu on system start. We can get the event group for a CPU via a function in event_group.c Another change is that an event now stores what group it is in when it add_event() is called on it. This lets us cancel it without knowing what event group it is in. The above is important because Level-C events (like releases) have a NULL event group. When calling add_event(), it will get the event group of the current CPU. If the event needs to be canceled later, we need that saved group in the event so we know where to remove it from.
* Merged with ce domainsJonathan Herman2011-09-27
|\
* | Timer mergingJonathan Herman2011-09-27
|/
* Now with fine grained lockingJonathan Herman2011-09-21
|
* Refactor to allow generic domainsJonathan Herman2011-09-07
|
* created generic domain interface for tasksJonathan Herman2011-08-29
|
* removed domain_of, domain already stored in tasksJonathan Herman2011-08-27
|
* 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