aboutsummaryrefslogtreecommitdiffstats
path: root/include
Commit message (Collapse)AuthorAge
* Appears to be working.wip-nested-lockingBryan Ward2013-04-18
|
* Fixed the littlest typo.Jonathan Herman2013-04-16
|
* Merged with latest kernelshark branch.Jonathan Herman2013-04-16
| | | | | | | Conflicts: include/litmus/sched_trace.h include/trace/events/litmus.h
* Fixed a boosting bug.Bryan Ward2013-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
* 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
|
* 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.
* 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.
* TRACE_TASK(): accept NULL pointersBjoern Brandenburg2013-02-04
| | | | Allow tracing of NULL tasks. Makes debugging a bit easier.
* 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: 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 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: prevent misuse of priority queueBjoern Brandenburg2012-10-18
| | | | Stop hard-to-detect out-of-bounds errors early.
* Feather-Trace: hide irq in SEND_RESCHED_ENDBjoern Brandenburg2012-10-18
| | | | | | | SEND_RESCHED_END is necessarily preceded by an interrupt. We don't want to filter events based on this expected interrupts, but we still want to detect samples disturbed by other interrupts. Hence, subtract one off the interrupt count.
* Use user-provided irq count for TS_SYSCALL_IN_ENDBjoern Brandenburg2012-10-18
| | | | | | To detect interrupts that interfered after the initial time stamp was recorded, this patch changes sched_trace to also record the IRQ count as observed by userspace.
* Export IRQ count to control pageBjoern Brandenburg2012-10-18
| | | | Also add some compile-time checks to detect unexpected offsets.
* Feather-Trace: add support for locking-related syscall overheadsBjoern Brandenburg2012-10-18
| | | | | Support recording timestamps that allow tracing the entry and exit costs of locking-related system calls.
* Feather-Trace: update locking timestampsBjoern Brandenburg2012-10-18
| | | | | Reassing locking timestamps and prepare support for tracing system call overheads.
* Feather-Trace: keep track of PID in trace recordBjoern Brandenburg2012-10-18
| | | | | | | | To properly trace locking overheads, it is required to tell apart samples from different tasks, which requires keeping track of their PIDs. The timestamp is shortened to 48 bits to make room for the PID.
* Remove complete_n() APIBjoern Brandenburg2012-10-18
| | | | | | The LITMUS^RT-specific completion API complete_n() is no longer required by the synchronous release code. Let's remove it; one less modification of a core Linux file to maintain during rebasing.
* Fix compilation error on ARM platforms.Christopher Kenna2012-09-29
|
* Fix 64-bit division in fpmath.hChristopher Kenna2012-09-29
| | | | | | Commit e6f51fb826ce98d436f445aae4eb9e9dba1f30e8 added some floating point support for LITMUS^RT, but it used 64-bit division that ARM does not support. Therefore, use the division functions from math64.h.
* EDF priority tie-breaks.Glenn Elliott2012-09-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of tie-breaking by PID (which is a static priority tie-break), we can tie-break by other job-level-unique parameters. This is desirable because tasks are equaly affected by tardiness since static priority tie-breaks cause tasks with greater PID values to experience the most tardiness. There are four tie-break methods: 1) Lateness. If two jobs, J_{1,i} and J_{2,j} of tasks T_1 and T_2, respectively, have equal deadlines, we favor the job of the task that had the worst lateness for jobs J_{1,i-1} and J_{2,j-1}. Note: Unlike tardiness, lateness may be less than zero. This occurs when a job finishes before its deadline. 2) Normalized Lateness. The same as #1, except lateness is first normalized by each task's relative deadline. This prevents tasks with short relative deadlines and small execution requirements from always losing tie-breaks. 3) Hash. The job tuple (PID, Job#) is used to generate a hash. Hash values are then compared. A job has ~50% chance of winning a tie-break with respect to another job. Note: Emperical testing shows that some jobs can have +/- ~1.5% advantage in tie-breaks. Linux's built-in hash function is not totally a uniform hash. 4) PIDs. PID-based tie-break used in prior versions of Litmus.
* Include a missing header file.Christopher Kenna2012-09-20
|
* New Feature: Arbitrary deadlines.2012.2Glenn Elliott2012-08-01
| | | | | | | | | | | | Added support for arbitrary deadlines. Constraint: Relative deadline must be >= exec cost. Use: Set relative deadline in rt_task::rdeadline. Set value to 0 to default to implicit deadlines. Limitations: PFAIR not supported by this patch. PFAIR updated to reject tasks that do not have implicit deadlines.
* P-FP: Clarify meaning of prioritiesBjoern Brandenburg2012-07-23
| | | | | | Add a comment to explain how priorities are interpreted, and provide some useful macros for userspace.
* P-FP: make PCP available to userspaceSven Dziadek2012-07-23
| | | | Prior to that it was only used internally for DPCP
* P-FP: port P-FP plugin used in B. Brandenburg'sSven Dziadek2012-07-23
| | | | | | | | | | dissertation (branch bbb-diss) to current version of litmus This is needed for ongoing projects I took the unchanged code but removed some leftovers of OMLP which is not implemented
* GSN-EDF: do not requeue jobs without budgetBjoern Brandenburg2012-05-31
| | | | | | | | | | This patch changes how preemptions of jobs without budget work. Instead of requeuing them, they are now only added if they are not subject to budget enforcement or if they have non-zero budget. This allows us to process job completions that race with preemptions. This appears to fix a BUG in budget.c:65 reported by Giovani Gracioli.
* Move budget-related helpers to budget.hBjoern Brandenburg2012-05-31
| | | | | | | | | litmus.h is accumulating too many things. Since we already have budget.h, let's stick all budget-related inline functions there as well. This patch is merely cosmetic; it does not change how budget enforcement works.
* An efficient binary heap implementation.wip-stage-binheapGlenn Elliott2012-05-26
| | | | | | | An efficient binary heap implementation coded in the style of Linux's list. This binary heap should be able to replace any partially sorted priority queue based upon Linux's list.
* Add kernel-style events for sched_trace_XXX() functionsAndrea Bastoni2012-03-30
| | | | | | | | | | | | | | | | | | Enable kernel-style events (tracepoint) for Litmus. Litmus events trace the same functions as the sched_trace_XXX(), but can be enabled independently. So, why another tracing infrastructure then: - Litmus tracepoints can be recorded and analyzed together (single time reference) with all other kernel tracing events (e.g., sched:sched_switch, etc.). It's easier to correlate the effects of kernel events on litmus tasks. - It enables a quick way to visualize and process schedule traces using trace-cmd utility and kernelshark visualizer. Kernelshark lacks unit-trace's schedule-correctness checks, but it enables a fast view of schedule traces and it has several filtering options (for all kernel events, not only Litmus').
* 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.