aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAge
* 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
* Cleanup use of binheap_entry().Glenn Elliott2012-04-04
| | | | The entry is already casted by the macro.
* 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
|\
| * Make C-EDF work with simplified binheap_deletewip-binary-heapGlenn Elliott2012-03-21
| |
| * Make GSN-EDF work with simlified binheap_delete()Glenn Elliott2012-03-21
| |
| * Simplify binheap_delete and add binheap_decreaseGlenn Elliott2012-03-21
| |
| * C-EDF: Use binary heap instead of binomial heap.Glenn Elliott2012-03-21
| | | | | | | | Use binary heap for ordering priority of CPUs.
| * 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.
* C-EDF: rename lock -> cluster_lockBjoern B. Brandenburg2011-11-24
| | | | The macro lock conflicts with locking protocols...
* locking: use correct timestampBjoern B. Brandenburg2011-11-24
|
* Feather-trace: let userspace add overhead eventsBjoern B. Brandenburg2011-11-24
| | | | | This is useful for measuring locking-related overheads that are partially recorded in userspace.
* 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.
* ftdev: remove event activation hackBjoern B. Brandenburg2011-11-24
| | | | | Instead of doing the hackisch 'write commands to device' thing, let's just use a real ioctl() interface.
* Feather-Trace: keep track of release latencyBjoern B. Brandenburg2011-11-24
|
* Feather-Trace: trace locking-related suspensionsBjoern B. Brandenburg2011-11-24
|
* Feather-Trace: start with the largest permissible rangeBjoern B. Brandenburg2011-11-24
| | | | MAX_ORDER is 11, but this is about number of records, not number of pages.
* bugfix: add processors in order of increasing indices to clustersBjoern B. Brandenburg2011-11-24
| | | | | Pfair expects to look at processors in order of increasing index. Without this patch, Pfair could deadlock in certain situations.
* Pfair: improve robustness of suspensionsBjoern B. Brandenburg2011-11-24
| | | | | | | | | | | | | | | This patch fixes two crash or hang bugs related to suspensions in Pfair. 1) When a job was not present at the end of its last subtask, then its linked_on field was not cleared. This confused the scheduler when it later resumed. Fix: clear the field. 2) Just testing for linked_on == NO_CPU is insufficient in the wake_up path to determine whether a task should be added to the ready queue. If the task remained linked and then was "preempted" at a later quantum boundary, then it already is in the ready queue and nothing is required. Fix: encode need to requeue in task_rt(t)->flags.
* 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.
* Add unlikely() to rel master check (match pfair).Glenn Elliott2011-11-02
|
* bugfix: release master CPU must signal task was pickedBjoern B. Brandenburg2011-11-02
|
* Pfair: various fixes concerning release timersBjoern B. Brandenburg2011-08-27
|
* Pfair: add support for true sporadic releasesBjoern B. Brandenburg2011-08-27
| | | | | | This patch also converts Pfair to implement early releasing such that no timer wheel is required anymore. This removes the need for a maximum period restriction.
* Pfair: add release master support.Bjoern B. Brandenburg2011-08-27
| | | | | Merged in release master support for Pfair. Some merge conflicts had to be resolved.
* 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>
* C-EDF: add release master supportBjoern B. Brandenburg2011-08-27
| | | | As with GSN-EDF, do not insert release master into CPU heap.
* PSN-EDF: add release master supportBjoern B. Brandenburg2011-08-27
| | | | We can give up a processor under partitioning, too.
* 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>
* Prevent Linux to send IPI and queue tasks on remote CPUs.wip-merge-v3.0Andrea Bastoni2011-08-27
| | | | | | Whether to send IPIs and enqueue tasks on remote runqueues is plugin-specific. The recent ttwu_queue() mechanism (by calling ttwu_queue_remote()) interferes with Litmus plugin decisions.
* Update PULL_TIMERS_VECTOR numberAndrea Bastoni2011-08-27
| | | | | | From 2.6.39 the "0xee" vector number that we used for pull_timers low-level management is is use by invalidate_tlb_X interrupts. Move the pull_timers vector below the max size of invalidate_tlb.
* Fix prototype mismatching and synch syscall numbersAndrea Bastoni2011-08-27
| | | | | | * Update prototypes for switched_to(), prio_changed(), select_task_rq(). * Fix missing pid field in printk output. * Synchronize syscall numbers for arm and x86.
* 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
| * Linux 3.0Linus Torvalds2011-07-21
| |
| * Merge branch 'for_linus' of ↵Linus Torvalds2011-07-21
| |\ | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb: sparc,kgdbts: fix compile regression with kgdb test suite
| | * sparc,kgdbts: fix compile regression with kgdb test suiteJason Wessel2011-07-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 63ab25ebbc (kgdbts: unify/generalize gdb breakpoint adjustment) introduced a compile regression on sparc. kgdbts.c: In function 'check_and_rewind_pc': kgdbts.c:307: error: implicit declaration of function 'instruction_pointer_set' Simply add the correct macro definition for instruction pointer on the Sparc architecture. Signed-off-by: Jason Wessel <jason.wessel@windriver.com> Acked-by: Mike Frysinger <vapier@gentoo.org> Acked-by: David S. Miller <davem@davemloft.net>
| * | Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6Linus Torvalds2011-07-21
| |\ \ | | | | | | | | | | | | | | | | * git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6: CIFS: Fix wrong length in cifs_iovec_read
| | * | CIFS: Fix wrong length in cifs_iovec_readPavel Shilovsky2011-07-20
| | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Pavel Shilovsky <piastryyy@gmail.com> Reviewed-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Steve French <sfrench@us.ibm.com>
| * | | Merge branch 'x86-urgent-for-linus' of ↵Linus Torvalds2011-07-21
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86: Make Dell Latitude E6420 use reboot=pci x86: Make Dell Latitude E5420 use reboot=pci