aboutsummaryrefslogtreecommitdiffstats
path: root/include
Commit message (Collapse)AuthorAge
* Final GPUSync implementation.wip-gpu-rtss12Glenn Elliott2012-05-14
|
* fix minor bugs. there is still a bug in GEDF PAI.Glenn Elliott2012-04-27
|
* Port rtss12 features to C-EDF (untested)Glenn Elliott2012-04-25
|
* Tested/Fixed IKGLP heurs. OS WORK FINALLY DONE!Glenn Elliott2012-04-23
|
* Donor dequeue heuristic for IKGLP. Untested.Glenn Elliott2012-04-20
|
* Untested donee selection heuristic for IKGLP.Glenn Elliott2012-04-20
|
* Added hooks for IKGLP affinity and a little logic.Glenn Elliott2012-04-18
| | | | | | | | | | | | simple IKGLP is already done. it does: 1) auto gpu de/registration. 2) distruption amongst simultanous users across queues 3) calls default IKGLP routines when appropriate. Remaining work: 1) FQ advisement. 2) Donor stealing advisement. 3) Donee selection advisement.
* Zap line-endingsGlenn Elliott2012-04-18
|
* Added support for simult-users in kfmlpGlenn Elliott2012-04-18
|
* Fixed and tested aff-aware KFMLP. (finally!)Glenn Elliott2012-04-18
|
* Implement GPU-affinity-aware kfmlp (untested)Glenn Elliott2012-04-16
|
* Infrastructure for affinity-aware k-exclusionGlenn Elliott2012-04-15
|
* Update PAI to support multiGPUs (todo: klitirqd)Glenn Elliott2012-04-15
|
* remove fifo/rm header files left overGlenn Elliott2012-04-15
|
* add kfmlp as separate fileGlenn Elliott2012-04-15
|
* Merge branch 'wip-gpu-interrupts' into wip-gpu-rtss12Glenn Elliott2012-04-15
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: include/litmus/fdso.h include/litmus/rt_param.h include/litmus/sched_plugin.h include/litmus/unistd_32.h include/litmus/unistd_64.h litmus/Makefile litmus/edf_common.c litmus/litmus.c litmus/locking.c litmus/sched_gsn_edf.c litmus/sched_plugin.c
| * Merge branch 'wip-pai' into wip-gpu-interruptsGlenn Elliott2012-03-04
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: include/litmus/affinity.h kernel/sched.c kernel/softirq.c litmus/Kconfig litmus/affinity.c litmus/litmus.c litmus/preempt.c litmus/sched_cedf.c litmus/sched_gsn_edf.c
| | * Fix bugs in tracing and PAI handlingGlenn Elliott2012-01-20
| | |
| | * Completed PAI for C-EDF.Glenn Elliott2012-01-14
| | |
| | * PAI implementation, C-RM, C-FIFO.Glenn Elliott2012-01-11
| | |
| | * Full patch for klitirqd with Nvidia GPU support.Glenn Elliott2011-06-02
| | |
* | | Move RSM and IKGLP imp. to own .c fileswip-ikglpGlenn Elliott2012-04-13
| | | | | | | | | | | | | | | Also reformated code to be slightly more standard coding practice compliant.
* | | Added support for Dynamic Group Locks (DGLs)Glenn Elliott2012-04-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added support for Dynamic Group Locks. Locks are FIFO ordered (no timestamps), so a big DGL lock is needed to enqueue for resources atomically. Unfortunatly, this requires nested inheritance to use coarse-grain locking. Coarse-grain locking is used when DGLs are enabled. Fine-grain locking is used when DGLs are disabled. TODO: Clean up IKGLP implementatio. There is a lot of needless debug/TRACE work.
* | | Fix IKGLP bugs discovered in test.Glenn Elliott2012-04-09
| | | | | | | | | | | | | | | Apply fixes to the IKGLP. Also, break binheap.h into binheap.h/.c
* | | Untested implementation of IKGLP.Glenn Elliott2012-04-04
| | | | | | | | | | | | | | | I don't like coding so much w/o testing, but it's sort of hard to do without both lock() and unlock().
* | | Infrastructure of IKGLP. lock/unlock are stubsGlenn Elliott2012-03-31
| | |
* | | Nested inheritance with fine-grained locking.Glenn Elliott2012-03-30
| | | | | | | | | | | | | | | | | | Minor hack to lockdep was required too allow the inheritance propagation locking logic to work.
* | | Merge branch 'wip-binary-heap' into wip-nested-locksGlenn Elliott2012-03-23
|\ \ \
| * | | Simplify binheap_delete and add binheap_decreaseGlenn Elliott2012-03-21
| | | |
| * | | GSN-EDF: Use binary heap instead of binomial heap.Glenn Elliott2012-03-21
| | | | | | | | | | | | | | | | Use binary heap to track CPU priorities.
| * | | Binary heap implementationGlenn Elliott2012-03-21
| |/ / | | | | | | | | | | | | | | | | | | Motivation: Linux's prio_heap.h is of fixed size. Litmus's binomial heap may be overkill (and perhaps not general enough) for some applications. Implemented in the style of linked lists.
* | | blahGlenn Elliott2012-03-23
| | |
* | | Introduction of basic nesting foundations.Glenn Elliott2012-03-22
|/ /
* | Typo in macroJonathan Herman2012-02-16
| |
* | Feather-Trace: keep track of interrupt-related interference.2012.1Bjoern B. Brandenburg2012-01-30
| | | | | | | | | | | | | | Increment a processor-local counter whenever an interrupt is handled. This allows Feather-Trace to include a (truncated) counter and a flag to report interference from interrupts. This could be used to filter samples that were disturbed by interrupts.
* | Litmus core: simplify np-section protocolwip-2011.2-bbbBjoern B. Brandenburg2011-11-24
| | | | | | | | | | | | User a 32-bit word for all non-preemptive section flags. Set the "please yield soon" flag atomically when accessing it on remotely-scheduled tasks.
* | ftdev: let bufffer-specific code handle writes from userspaceBjoern B. Brandenburg2011-11-24
| | | | | | | | | | This allows us to splice in information into logs from events that were recorded in userspace.
* | Feather-Trace: keep track of release latencyBjoern B. Brandenburg2011-11-24
| |
* | Feather-Trace: trace locking-related suspensionsBjoern B. Brandenburg2011-11-24
| |
* | Add option to turn off preemption state tracingBjoern B. Brandenburg2011-11-24
| | | | | | | | | | | | Preemption state tracing is only useful when debugging preemption- and IPI-related races. Since it creates a lot of clutter in the logs, this patch turns it off unless explicitly requested.
* | C-EDF: Make migration affinity work with Release MasterGlenn Elliott2011-08-27
| | | | | | | | | | | | | | | | | | | | Needed to update C-EDF to handle release master. Also updated get_nearest_available_cpu() to take NO_CPU instead of -1 to indicate that there is no release master. While NO_CPU is 0xffffffff (-1 in two's complement), we still translate this value to -1 in case NO_CPU changes. Signed-off-by: Andrea Bastoni <bastoni@cs.unc.edu>
* | COMMENT: Correct comment on precise budget enforcementGlenn Elliott2011-08-27
| | | | | | | | | | Original comment said that this feature wasn't supported, though it has been since around October 2010.
* | Avoid needlessly costly migrations. CONFIG_SCHED_CPU_AFFINITYGlenn Elliott2011-08-27
| | | | | | | | | | | | | | | | | | | | | | | | | | Given a choice between several available CPUs (unlinked) on which to schedule a task, let the scheduler select the CPU closest to where that task was previously scheduled. Hopefully, this will reduce cache migration penalties. Notes: SCHED_CPU_AFFINITY is dependent upon x86 (only x86 is supported at this time). Also PFair/PD^2 does not make use of this feature. Signed-off-by: Andrea Bastoni <bastoni@cs.unc.edu>
* | Merge 'Linux v3.0' into LitmusAndrea Bastoni2011-08-27
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some notes: * Litmus^RT scheduling class is the topmost scheduling class (above stop_sched_class). * scheduler_ipi() function (e.g., in smp_reschedule_interrupt()) may increase IPI latencies. * Added path into schedule() to quickly re-evaluate scheduling decision without becoming preemptive again. This used to be a standard path before the removal of BKL. Conflicts: Makefile arch/arm/kernel/calls.S arch/arm/kernel/smp.c arch/x86/include/asm/unistd_32.h arch/x86/kernel/smp.c arch/x86/kernel/syscall_table_32.S include/linux/hrtimer.h kernel/printk.c kernel/sched.c kernel/sched_fair.c
| * Merge branch 'core-urgent-for-linus' of ↵Linus Torvalds2011-07-20
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: signal: align __lock_task_sighand() irq disabling and RCU softirq,rcu: Inform RCU of irq_exit() activity sched: Add irq_{enter,exit}() to scheduler_ipi() rcu: protect __rcu_read_unlock() against scheduler-using irq handlers rcu: Streamline code produced by __rcu_read_unlock() rcu: Fix RCU_BOOST race handling current->rcu_read_unlock_special rcu: decrease rcu_report_exp_rnp coupling with scheduler
| | * Merge branch 'rcu/urgent' of ↵Ingo Molnar2011-07-20
| | |\ | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-2.6-rcu into core/urgent
| | | * rcu: Fix RCU_BOOST race handling current->rcu_read_unlock_specialPaul E. McKenney2011-07-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The RCU_BOOST commits for TREE_PREEMPT_RCU introduced an other-task write to a new RCU_READ_UNLOCK_BOOSTED bit in the task_struct structure's ->rcu_read_unlock_special field, but, as noted by Steven Rostedt, without correctly synchronizing all accesses to ->rcu_read_unlock_special. This could result in bits in ->rcu_read_unlock_special being spuriously set and cleared due to conflicting accesses, which in turn could result in deadlocks between the rcu_node structure's ->lock and the scheduler's rq and pi locks. These deadlocks would result from RCU incorrectly believing that the just-ended RCU read-side critical section had been preempted and/or boosted. If that RCU read-side critical section was executed with either rq or pi locks held, RCU's ensuing (incorrect) calls to the scheduler would cause the scheduler to attempt to once again acquire the rq and pi locks, resulting in deadlock. More complex deadlock cycles are also possible, involving multiple rq and pi locks as well as locks from multiple rcu_node structures. This commit fixes synchronization by creating ->rcu_boosted field in task_struct that is accessed and modified only when holding the ->lock in the rcu_node structure on which the task is queued (on that rcu_node structure's ->blkd_tasks list). This results in tasks accessing only their own current->rcu_read_unlock_special fields, making unsynchronized access once again legal, and keeping the rcu_read_unlock() fastpath free of atomic instructions and memory barriers. The reason that the rcu_read_unlock() fastpath does not need to access the new current->rcu_boosted field is that this new field cannot be non-zero unless the RCU_READ_UNLOCK_BLOCKED bit is set in the current->rcu_read_unlock_special field. Therefore, rcu_read_unlock() need only test current->rcu_read_unlock_special: if that is zero, then current->rcu_boosted must also be zero. This bug does not affect TINY_PREEMPT_RCU because this implementation of RCU accesses current->rcu_read_unlock_special with irqs disabled, thus preventing races on the !SMP systems that TINY_PREEMPT_RCU runs on. Maybe-reported-by: Dave Jones <davej@redhat.com> Maybe-reported-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com> Reported-by: Steven Rostedt <rostedt@goodmis.org> Signed-off-by: Paul E. McKenney <paul.mckenney@linaro.org> Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Reviewed-by: Steven Rostedt <rostedt@goodmis.org>
| * | | sched: Allow for overlapping sched_domain spansPeter Zijlstra2011-07-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Allow for sched_domain spans that overlap by giving such domains their own sched_group list instead of sharing the sched_groups amongst each-other. This is needed for machines with more than 16 nodes, because sched_domain_node_span() will generate a node mask from the 16 nearest nodes without regard if these masks have any overlap. Currently sched_domains have a sched_group that maps to their child sched_domain span, and since there is no overlap we share the sched_group between the sched_domains of the various CPUs. If however there is overlap, we would need to link the sched_group list in different ways for each cpu, and hence sharing isn't possible. In order to solve this, allocate private sched_groups for each CPU's sched_domain but have the sched_groups share a sched_group_power structure such that we can uniquely track the power. Reported-and-tested-by: Anton Blanchard <anton@samba.org> Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Andrew Morton <akpm@linux-foundation.org> Link: http://lkml.kernel.org/n/tip-08bxqw9wis3qti9u5inifh3y@git.kernel.org Signed-off-by: Ingo Molnar <mingo@elte.hu>
| * | | sched: Break out cpu_power from the sched_group structurePeter Zijlstra2011-07-20
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In order to prepare for non-unique sched_groups per domain, we need to carry the cpu_power elsewhere, so put a level of indirection in. Reported-and-tested-by: Anton Blanchard <anton@samba.org> Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Andrew Morton <akpm@linux-foundation.org> Link: http://lkml.kernel.org/n/tip-qkho2byuhe4482fuknss40ad@git.kernel.org Signed-off-by: Ingo Molnar <mingo@elte.hu>
| * | include/linux/sdla.h: remove the prototype of sdla()WANG Cong2011-07-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `make headers_check` complains that linux-2.6/usr/include/linux/sdla.h:116: userspace cannot reference function or variable defined in the kernel this is due to that there is no such a kernel function, void sdla(void *cfg_info, char *dev, struct frad_conf *conf, int quiet); I don't know why we have it in a kernel header, so remove it. Signed-off-by: WANG Cong <xiyou.wangcong@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>