aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAge
* Fixed the littlest typo.Jonathan Herman2013-04-16
|
* Added lock tracing, probably.Jonathan Herman2013-04-16
|
* Merged with latest kernelshark branch.Jonathan Herman2013-04-16
| | | | | | | Conflicts: include/litmus/sched_trace.h include/trace/events/litmus.h
* Some debuging traces.Bryan Ward2013-04-16
|
* Fixed a boosting bug.Bryan Ward2013-04-16
|
* Bug fixes.Bryan Ward2013-04-16
|
* Move task time accounting into the complete_job method.Jonathan Herman2013-04-16
|
* Cleanup. Remove this commitJonathan Herman2013-04-16
|
* Properly track max_exec_time to output in task_exit record.Jonathan Herman2013-04-16
|
* Added exit and tardy hooks.Jonathan Herman2013-04-16
|
* Summarize schedulability with final recordJonathan Herman2013-04-16
| | | | | | | Conflicts: include/litmus/rt_param.h litmus/sched_color.c
* Store exec time in completion recordJonathan Herman2013-04-16
|
* Track tasks average execution time, drop in TASK_EXIT recordJonathan Herman2013-04-16
| | | | | | | | | Conflicts: include/litmus/rt_param.h litmus/jobs.c litmus/sched_color.c litmus/sched_task_trace.c
* Add the time to the task_exit eventChristopher Kenna2013-04-16
|
* Add task_exit event that records max exec time under color plugin.Christopher Kenna2013-04-16
| | | | | | | Conflicts: include/litmus/rt_param.h litmus/sched_color.c
* Initial commitJonathan Herman2013-04-16
|
* DGLock and DGUnlock implementation.Bryan Ward2013-04-16
| | | | | These methods haven't been fully tested, but they compile and pass a few simple tests.
* Check for valid fdsos in a dgl request.Bryan Ward2013-04-16
| | | | | Apply bitwise operations to quickly check if the set of resources requested are contained within one group.
* Allow one litmus_lock to control multiple fdsos.Bryan Ward2013-04-16
| | | | | Each fdso in a resource group now points to a single litmus_lock object which will arbitrate access to each of the fdsos.
* The DGL syscalls can now be successfully called.Bryan Ward2013-04-16
|
* Chris help!Bryan Ward2013-04-16
|
* Setup DGL system calls.Bryan Ward2013-04-16
|
* Initial commit.Jonathan Herman2013-03-18
|
* Differentiate between PERIODIC and SPORADIC tasks.Glenn Elliott2013-03-12
| | | | | | | | | | | | | Tasks can now be PERIODIC or SPORADIC. PERIODIC tasks do not have their job number incremented when they wake up and are tardy. PERIODIC jobs must end with a call to sys_complete_job() to set up their next release. (Not currently supported by pfair.) SPORADIC tasks _do_ have their job number incremented when they wake up and are tardy. SPORADIC is the default task behavior, carrying forward Litmus's current behavior.
* EDF schedulers: Support early job releasing.Glenn Elliott2013-03-12
| | | | | | | | | | | | | This patch allows a task to request early releasing via rt_task parameters to sys_set_task_rt_param(). Note that early releasing can easily peg your CPUs since early-releasing tasks never suspend to wait for their next job. As such, early releasing is really only useful in the context of implementing bandwidth servers, interrupt handling threads (or any thread that spends most of its time waiting for an event), or short-lived computations. If early releasing pegs your CPUs, then you probably shouldn't be using it.
* C-EDF: Cluster-aware admission test.Glenn Elliott2013-03-12
| | | | | | | | cedf_admit_task() is too restrictive in that the task to be admitted must be executing on the same CPU as is set in the task's task_params. This patch allows the task to be admitted to be executing on the same cluter as the CPU set in the task's task_params.
* uncachedev: mmap memory that is not cached by CPUsGlenn Elliott2013-03-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch creates a new character device, uncachedev. Pages of RAM allocated by this device are not cached by CPUs. Uses for such pages: 1) Determining *very* pessimistic emperical worst- case execution times. 2) Compare against performance with caches (quantify the avg. case benefit). 3) Deterministic memory accesses (access cannot cause a cache eviction.) 4) Theoretically, increased performance can be achieved by storing infrequently accessed data in uncache pages. uncachedev allocates pages with the pgprot_noncached() page attribute for user applications. Since pages allocated by uncachedev are not locked in memory by default, applications with any access level may mmap pages with uncachedev. Limitations: 1) Uncache pages must be MAP_PRIVATE. 2) Remapping not supported. Usage (user level): int size = NR_PAGES*PAGE_SIZE; int fd = open("/dev/litmus/uncache", O_RDWR); char *data = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_PRIVATE, fd, 0); <...do stuff...> munmap(data, size);
* Disallow nesting of LITMUS^RT locksBjoern Brandenburg2013-02-15
| | | | | | | | | | | | | | | | | | | | | Nesting of locks was never supported in LITMUS^RT since the required analysis does not exist anyway. That is, as defined in the literature, the protocols implemented in LITMUS^RT have not been studied in conjunction with nested critical sections. In LITMUS^RT, attempting to nest locks could lead to silent or not-so-silent bugs. This patch makes this restriction explicit and returns EBUSY when a process attempts to nest resources. This is enforced on a protocol-by-protocol basis, which means that adding protocols with support for nesting in future versions is not affected by this change. Exception: PCP and SRP resources may be nested, but not within global critical sections.
* PCP: allow NULL config parameterBjoern Brandenburg2013-02-15
| | | | | When the config parameter is NULL, just default to the local CPU, which is what we want in 99% of the cases anyway.
* Fix tracepoint compilation errorstagingFelipe Cerqueira2013-02-14
| | | | | | Linux tracepoints for real time tasks were causing compilation errors. For the tracing data structures to be properly created, it's necessary to add a #define.
* 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.
* Reimplement plugin switching using stop_machine()Bjoern Brandenburg2013-01-10
| | | | | | stop_machine() does exactly what we want (avoid all concurrent scheduling activity) and much simpler than rolling our own (buggy) implementation.
* Avoid race in do_release_ts()Bjoern Brandenburg2013-01-10
| | | | | | | The list is concurrently being modified by the waking processes. This requires the use of the list_for_each_safe() iterator. Reported by Glenn Elliott.
* Protect SCHED_LITMUS tasks from reschedules triggered by SCHED_FIFO enqueues.2012.3Jonathan Herman2012-12-21
| | | | (BB: edited to include <litmus/litmus.h> to resolve compile error.)
* Config: PREEMPT_STATE_TRACE depends on DEBUG_KERNEL.Christopher Kenna2012-12-11
| | | | | | | | | | This patch makes CONFIG_PREEMPT_STATE_TRACE depend on CONFIG_DEBUG_KERNEL. Prior to this patch, selecting PREEMPT_STATE_TRACE resulted in linker errors (see below), because sched_state_name is not built unless DEBUG_KERNEL is selected. kernel/built-in.o: In function `schedule': (.sched.text+0x3d2): undefined reference to `sched_state_name'
* 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).
* litmus: get rid of unused RT_F_EXIT_SEM flagManohar Vanga2012-11-27
| | | | | | | | | | | | | This patch removes the RT_F_EXIT_SEM flag. All code paths depending on it being true are assumed to be unreachable and removed. The 'flags' field in struct rt_params is left as-is for use by specific schedulers. For example, sched_pfair defines a custom flag RT_F_REQUEUE within the 'flags' field. Signed-off-by: Manohar Vanga <mvanga@mpi-sws.org>
* litmus: use is_present() instead of using rt_param->presentManohar Vanga2012-11-27
| | | | Signed-off-by: Manohar Vanga <mvanga@mpi-sws.org>
* litmus: get rid of RT_F_SLEEP and RT_F_RUNNINGManohar Vanga2012-11-27
| | | | | | | | This patch removes the flags RT_F_SLEEP and RT_F_RUNNING as their name is misleading. This patch replaces them with a 'completed' field in struct rt_param. Signed-off-by: Manohar Vanga <mvanga@mpi-sws.org>
* litmus: fix warning about unused label in sched_pfp.cManohar Vanga2012-11-27
| | | | | | | This patch fixes a warning about an unused label in sched_pfp.c when CONFIG_LITMUS_LOCKING is not set. Signed-off-by: Manohar Vanga <mvanga@mpi-sws.org>
* litmus: fix compiler warning in sched_plugin.hManohar Vanga2012-11-27
| | | | | | | | This patch fixes the compiler warning about struct litmus_locking being defined in the parameter list when CONFIG_LITMUS_LOCKING is not set. Signed-off-by: Manohar Vanga <mvanga@mpi-sws.org>
* P-FP: be less permissive about non-running tasks in queueBjoern Brandenburg2012-10-18
| | | | No suspended task should ever be queued in this plugin.
* P-FP: be paranoid in the preemption caseBjoern Brandenburg2012-10-18
| | | | | Crash and burn if an expected preemption didn't happen. This is useful to flag any bugs in the queue management code...
* P-FP: use proper CONFIG_ symbolBjoern Brandenburg2012-10-18
| | | | It's CONFIG_LITMUS_LOCKING, not just CONFIG_LOCKING...
* P-FP: prevent misuse of priority queueBjoern Brandenburg2012-10-18
| | | | Stop hard-to-detect out-of-bounds errors early.
* P-FP: simplify priority comparisonBjoern Brandenburg2012-10-18
| | | | | | Make the priority comparison easier to read. Also, remove the "equal PID" clause and insert a corresponding BUG_ON() instead; this should really never happen.
* P-FP: simplify boost_priority()Bjoern Brandenburg2012-10-18
| | | | | | boost_priority() is only applied to already-scheduled tasks. Remove the (untested and unneeded) case handling unscheduled tasks, which was likely not correct anyway.
* P-FP: record job release records for tardy tasksBjoern Brandenburg2012-10-18
| | | | | When a job was tardy, the plugin failed to invoke sched_trace. This caused ugly "holes" in the visualized schedule.