aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAge
* BUG FIX: Support DGLs with PRIOQ_MUTEXwip-prioq-dglGlenn Elliott2013-02-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | First 'working' implementation of DGLs with PRIOQ_MUTEX. (All other code prior was work-in-progress.) General approach: Because of priority queue order, PRIOQ_MUTEX DGLs must be *acquired* atomically. This means that a task cannot acquire an available PRIOQ_MUTEX if another PRIOQ_MUTEX is not available at the same time. Requests are buffered in PRIOQ_MUTEX and the resource 'idles'-- that is, the mutex owner is NULL, but there are waiting tasks for the resource. Several notes/side-effects: 1) A high-priority task that idles a resource can effectively block lower-priority tasks from acquiring that resource. This is because the low-prio task cannot skip ahead of the high-prio task in the priority queue. 2) Priority inheritance from nesting can cause the low-prioity task in #1 to jump over the high-priority task and acquire the resource. This means that any task blocked on a DGL that receives an increase in priority while blocked on the DGL must trigger a re-eval of the locks it can take. If the resources can be acquired, then the task needs to be woken up! <<<<< Lock acquisition via inheritance is entirely new and weird! >>>>> 3) A similar case for #2 exists for priorty decreases (example: this can happen when a task loses a donor) while it is blocked on a PRIOQ_MUTEX. The high-priority task described in #1 can change and become a lower- priority task. Every idle lock (mutex owner is NULL) on which the task losing priority must be revaluated--- it is possible that the (possible) new head on the priority queue can take the lock. Note: This affects BOTH singular and DGL resource requests, while the case described in #2 only affects DGL requests (because a singular request at the head of the priority queue will never idle a resource).
* PRIOQ_MUTEX dgl progressGlenn Elliott2013-02-11
|
* Make PRIOQ &DGLs work. hangs w/ ikglp thoughGlenn Elliott2013-02-08
|
* Optimize DGLs of size = 1.Glenn Elliott2013-02-08
|
* Extend support for PRIOQ_MUTEXGlenn Elliott2013-02-08
|
* Add PRIOQ_MUTEX semaphoreGlenn Elliott2013-02-08
|
* Rename RSM Mutex to FIFO MutexGlenn Elliott2013-02-07
|
* re-enable klmirqd for workqueues, and grace rebootGlenn Elliott2013-02-06
|
* Fix: get_nv_max_device_owner() was always ret nullGlenn Elliott2013-02-05
|
* change "nil/-1" to "null/0" to match prop. m-lineGlenn Elliott2013-02-05
|
* Merge branch 'prop/misc-fixes' into wip-2012.3-gpuGlenn Elliott2013-02-05
|\
| * P-FP: fix BUG_ON releated to priority inheritancearchive/unc-master-3.0Bjoern Brandenburg2013-02-04
| | | | | | | | | | | | | | In some cases, the PCP priority inheritance code triggered a (defensive) BUG_ON() in fp_common.c. This shuffles the order of operations a bit to be compliant with the restriction that tasks are never compared against themselves.
| * FDSO: fail to build if some ops are missingBjoern Brandenburg2013-02-04
| | | | | | | | Prevents out-of-bounds lookups.
| * TRACE_TASK(): accept NULL pointersBjoern Brandenburg2013-02-04
| | | | | | | | Allow tracing of NULL tasks. Makes debugging a bit easier.
* | a lame commitGlenn Elliott2013-02-05
| |
* | BUG IKGLP: Count replica holders as in FIFOGlenn Elliott2013-01-29
| | | | | | | | | | Tasks that immediatly acquired a free replica were not being counted as being in the FIFOs.
* | part. gpu hack and fixed dumb ikglp bugGlenn Elliott2013-01-28
| | | | | | | | | | | | IKGLP wasn't being passed the right value for 'm' in C-EDF. It went undected for so long since m < k in our GPUSync experiments.
* | ECRTS13 testbed (hopefully)Glenn Elliott2013-01-27
| | | | | | | | | | fixed minor bugs and cleaned up ikglp affinity logic
* | Added TRACE calls to ikglpGlenn Elliott2013-01-25
| |
* | Fix inheritance propagation for klmirqd&aux tasks.Glenn Elliott2013-01-24
| | | | | | | | | | | | | | | | | | | | Bug: Inheritance not propagated to klmirqd and aux tasks when the task these threads inherit from has a change in its own priority. (Also removed per-task NV interrupt tracking since we cannnot identify exact interrupt ownership under GPUSync.)
* | Fix AUX tasks from being dropped by Litmus.Glenn Elliott2013-01-23
| |
* | Fixed case where blocked tasks are released.Glenn Elliott2013-01-21
| | | | | | | | | | | | | | | | | | | | Fixed bug where AUX tasks were being added to the ready queue while those AUX tasks were actually blocked. Bug stems from the fact that the AUX tasks do not make themselves realtime, but another thread does this instead. Also fixed minor bugs elsewhere. NOTE: ONLY FIXES C-EDF. OTHER PLUGINS REMAIN TO BE FIXED.
* | Minor changes to lock procGlenn Elliott2013-01-18
| |
* | minor fixesGlenn Elliott2013-01-18
| |
* | Support NV 304.x and 310.x drivers.Glenn Elliott2013-01-18
| |
* | Removed trailing spaces.Glenn Elliott2013-01-18
| |
* | /proc hooks for locking protocols.Glenn Elliott2013-01-18
| | | | | | | | RSM locks only make use of /proc for now.
* | Increase max aux runtime from 1 jiffy to 4.Glenn Elliott2013-01-18
| |
* | Remove tasklet::owner field (just commented out).Glenn Elliott2013-01-18
| |
* | Remove tasklet_owner requirements.Glenn Elliott2013-01-15
| |
* | Fix WARN_ON() and fix CUDA 5.0 (NV RM 310.x).Glenn Elliott2013-01-15
| |
* | remove sem/mutex hacks needed for old klmirqdGlenn Elliott2013-01-10
| |
* | Merge branch 'wip-gpu-cleanup' into wip-2012.3-gpuGlenn Elliott2013-01-10
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: include/litmus/fpmath.h include/litmus/litmus.h include/litmus/rt_param.h include/litmus/trace.h kernel/sched.c kernel/softirq.c litmus/edf_common.c litmus/jobs.c litmus/litmus.c litmus/locking.c litmus/preempt.c litmus/sched_cedf.c litmus/sched_gsn_edf.c litmus/sched_litmus.c litmus/sync.c
| * | Enable sched_trace log injection from userspacewip-gpu-cleanupGlenn Elliott2013-01-09
| | |
| * | Extend non-rt support to sync-releases.Glenn Elliott2013-01-08
| | | | | | | | | | | | | | | | | | Note that non-rt tasks are released immediately. That is, the 'delay' provided to the release_ts() system-call is ignored for non-rt tasks.
| * | Allow klmirqd threads to be given names.wip-klmirqd-to-auxGlenn Elliott2012-12-13
| | |
| * | Fix several klmirqd bugs.Glenn Elliott2012-12-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1) Deadlock in litmus_task_exit()-- added litmus_pre_task_exit() to be called without the Linux runqueue lock held. 2) Prioritization of base-prio klmirqd/aux threads vs. normal real-time tasks. 3) Initialization of gpu owner binheap node moved to *after* memset(0) of rt_params. 4) Exit path of klmirqd threads.
| * | test2Glenn Elliott2012-12-13
| | |
| * | blahGlenn Elliott2012-12-13
| | |
| * | Fix klmirqd plugin switching to not panic.Glenn Elliott2012-12-13
| | |
| * | Use num_online_gpus()Glenn Elliott2012-12-12
| | | | | | | | | | | | | | | | | | Note that num_online_gpus() merely reports the staticly configured maximum number of available GPUs. Will make dynamic in the future.
| * | Cluster assignment of nv klmirqd threads.Glenn Elliott2012-12-12
| | |
| * | make klmirqd work like aux tasks. checkpoint.Glenn Elliott2012-12-12
| | | | | | | | | | | | this code is untested!
| * | Rename klitirqd klmirqd.Glenn Elliott2012-12-09
| | |
| * | Specify aux thread granularity in jiffiesGlenn Elliott2012-12-09
| | |
| * | Send reboot notifications to LitmusGlenn Elliott2012-12-07
| | | | | | | | | | | | | | | | | | | | | | | | This patch causes reboot notifications to be send to Litmus. With this patch, Litmus attempts to switch back to the Linux-plugin before the reboot proceeds. Any failures to switch back are reported via printk() (the reboot is not halted).
| * | AUX_FUTURE and revised inh-based aux tie breakGlenn Elliott2012-12-06
| | |
| * | Fix compilation warnings.Glenn Elliott2012-11-30
| | |
| * | More improvements on affinity heuristicsGlenn Elliott2012-11-30
| | |
| * | Merge branch 'wip-aux-hacks' into wip-load-balance-gpusGlenn Elliott2012-11-11
| |\ \