aboutsummaryrefslogtreecommitdiffstats
path: root/litmus
Commit message (Collapse)AuthorAge
* 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
| |
| * Port PAI interrupts to GSN-EDF, C-RM/RM-SRT/FIFO.Glenn Elliott2012-01-14
| |
| * 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
| |
* | 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.
* | 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>
* | 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
* LITMUS Core: Check for valid class in RT-param syscall.Christopher Kenna2011-04-20
|
* bugfix: release master CPU must signal task was pickedBjoern B. Brandenburg2011-04-12
| | | | | Otherwise, the release master CPU may try to reschedule in an infinite loop.
* Improve FMLP queue management.wip-fmlp-dequeueGlenn Elliott2011-03-31
| | | | | | | | | | The next owner of a FMLP-protected resource is dequeued from the FMLP FIFO queue by unlock() (when the resource is freed by the previous owner) instead of performing the dequeue by the next owner immediately after it has been woken up. This simplifies the code a little bit and also reduces potential spinlock contention.
* Pfair: remove sporadic_release flagBjoern B. Brandenburg2011-02-01
| | | | | Instead of having an extra flag, Pfair should just infer sporadic release based on deadlines like other plugins, too.
* Pfair: support clustered schedulingBjoern B. Brandenburg2011-02-01
| | | | | | | Just like C-EDF is a global scheduler that is split across several clusters, Pfair can be applied on a per-cluster basis. This patch changes the Pfair implementation to enable clustering based on the recently added generic clustering support.
* Litmus core: add generic clustering supportBjoern B. Brandenburg2011-02-01
| | | | | Inspired by the existing C-EDF code, this generic version will build clusters of CPUs based on a given cache level.
* Litmus core: extract userspace interface from C-EDFBjoern B. Brandenburg2011-02-01
| | | | | Make the cluster size configuration in C-EDF generic so that it can be used by other clustered schedulers.
* Feather-Trace: rename locking trace pointsBjoern B. Brandenburg2011-02-01
| | | | | Since we don't expect to trace more than one lock type at a time, having protocol-specific trace points is not required.
* fdso: pass userpsace config argument to object constructorBjoern B. Brandenburg2011-02-01
| | | | | | | | | | | | As Glenn pointed out, it is useful for some protocols (e.g., k-exclusion protocols) to know the userspace configuration at object creation time. This patch changes the fdso API to pass the parameter to the object constructor, which is then in turn passed to the lock allocater. The return code from the lock allocater is passed to userspace in return. This also fixes some null pointer dereferences in the FDSO code found by the test suite in liblitmus.
* GSN-EDF: re-implement FMLP supportBjoern B. Brandenburg2011-02-01
| | | | This introduces the global FMLP based on the generic locking layer.
* PSN-EDF: re-implement FMLP supportBjoern B. Brandenburg2011-02-01
| | | | | Implement the partitioned FMLP with priority boosting based on the generic lock API.
* EDF: support priority boostingBjoern B. Brandenburg2011-02-01
| | | | While we are at it, simplify edf_higher_prio() a bit.
* FMLP: remove old implementationBjoern B. Brandenburg2011-02-01
|
* SRP: port to new generic locking APIBjoern B. Brandenburg2011-02-01
| | | | | This re-enables SRP support under PSN-EDF and demonstrates how the new locking API should be used.
* Litmus core: replace FMLP & SRP system calls with generic syscallsBjoern B. Brandenburg2011-02-01
| | | | | This renders the FMLP and SRP unfunctional until they are ported to the new locking API.
* Litmus core: add generic locking APIBjoern B. Brandenburg2011-02-01
| | | | | Provide a unified userspace interface for plugin-specific locking protocols.
* Litmus core: change plugin locking interface to generic 'allocate_lock()'Bjoern B. Brandenburg2011-02-01
| | | | | | | | | As the number of supported locking protocols is expected to rise, hard-coding things like priority inheritance in the plugin interface doesn't scale. Instead, use a new generic lock-ops approach. With this approach, each plugin can define its own protocol implementation (or use a generic one), and plugins can support multiple protocols without having to change the plugin interface for each protocol.
* fdso: supply object type to constructor and destructor methodsBjoern B. Brandenburg2011-02-01
| | | | Passing the object type explicitly will enable generic lock constructors.
* Added task class to feather trace param record.Jonathan Herman2011-02-01
|
* bugfix: don't let children stay Litmus real-time tasksBjoern B. Brandenburg2011-01-30
| | | | | | | | It has always been LITMUS^RT policy that children of real-time tasks may not skip the admissions test, etc. This used to be enforced, but was apparently dropped during some port. This commit re-introduces this policy. This fixes a kernel panic that occurred when "real-time children" exited without proper initilization.