aboutsummaryrefslogtreecommitdiffstats
path: root/bin/rtspin.c
Commit message (Collapse)AuthorAge
* rtspin: improve verbose (-v) outputHEADmasterBjoern Brandenburg2016-07-20
|
* rtspin: add -T (use clock_nanosleep) optionBjoern Brandenburg2016-07-20
| | | | | This make rtspin use the regular Linux API for periodic activations instead of the LITMUS^RT-specifc sleep_next_period() API.
* rtspin: Add sporadic task modeBjoern Brandenburg2016-07-20
| | | | While at it, also fix exec-times-from-CSV support.
* Compile cleanly with -Werror=format-securityBjoern Brandenburg2016-04-23
|
* Clean up help message of rtspinBjoern Brandenburg2016-04-17
|
* Harmonize options between rtspin and rt_launch (-d, -o)Bjoern Brandenburg2016-04-17
| | | | | -d -> relative deadline -o -> offset/phase
* Add -b (background cache-thrashing loop) option to rtspinBjoern Brandenburg2016-03-20
|
* Add memory thrashing option to rtspinMahircan Gul2016-03-20
|
* Add -u (underrun) to rtspinBjoern Brandenburg2016-03-16
| | | | | | When debugging slack rules, it's useful to induce random underruns. Note: this is a debug feature and not intended for benchmarking.
* Add -R (create sporadic reservation) flag to rtspinBjoern Brandenburg2016-03-16
|
* rtspin -v: report deadline, current time, and slackBjoern Brandenburg2015-12-16
|
* Add -i option to rtspin (report interrupts)Bjoern Brandenburg2015-12-09
| | | | | Add an option that, together with -v (verbose), makes rtspin print interrupt information from its control page.
* Add -r (reservation) and -v (verbose) flags to rtspinBjoern Brandenburg2015-07-20
| | | | | | | | | | The -r flag allows specifying a "virtual CPU" (in addition to a physcial CPU to migrate to) that may be interpreted by a scheduler plugin to refer to a reservation to which the task should be added. The -v flag causes rtspin to output timing information on stdout and can be useful for early-stage plugin debugging (to see that something is happening at all).
* Use /proc/litmus/domains to set up affinity masksGlenn Elliott2014-02-24
| | | | | | | | | | | | | | | | | | | | | | | | | This patch replaces the algorithm used to compute CPU affinity masks. The old algorithm was fragile and would break on systems with multiple levels of shared caches. (As found on some older Intel chips, and as one would probably find on a system with hyper-threading enabled.) The bug stems from fact that Linux enumerates consecutive CPUs in a way that distributes them across the physical system, thereby reducing contention resources (e.g., cache). Cluster size no longer needs to be provided now that cluster/CPU mappings are explicit in /proc/litmus/domains/. This keeps the following migration functions, but marks them as deprecated: - be_migrate_to_cluster() - cluster_to_first_cpu() - partition_to_cpu() Although the deprecated interfaces are supported, the implementations for these functions call the new be_migrate_to_domain() and domain_to_first_cpu() functions. [bbb: resolved several merge conflicts]
* Change convenience API routines.Glenn Elliott2013-03-12
| | | | | | | | | | | | | The sproadic_*() macros have become unwieldy. This patch replaces those convenience macros for global, clustered, and partitioned scheduling. A part of this API change is the explicit use of nanosecond time-values. Prior APIs have used lt_t (litmus time), which had an implied time scale of nanoseconds. /bin apps and test suite also updated to use revised API. Modifications to the test suite are mostly centered around using nanoseconds instead of milliseconds.
* Cluster-aware rtspin and rt_launch.Glenn Elliott2013-03-12
| | | | | | | | | This patch adds cluster scheduling options to rtspin and rt_launch. The convenience routines in litmus.h were also updated to facilitate clustered scheduling. For partitioned scheduling, just set cluster_size = 1 (default size for rtspin and rt_launch).
* Auto-CPU-affinity from part./cluster assignment.Glenn Elliott2013-03-12
| | | | | | | | | | | This patch replaces be_migrate_to() with several be_migrate_*() APIs to automatically assign CPU affinity masks from a task's partition (or cluster) assignment. Routines are release-master-aware such that the release master (if one exists) will NOT be included in the task's affinity mask. (Note that release-master avoidance may be overridden by calling __be_migrate_thread_to_cluster().)
* uncachedev: uncache test tool.Glenn Elliott2013-03-12
| | | | | | | | | | | | | | | | | This adds the uncache test tool (bin/uncache.c). The tool can be used to test Litmus's char device driver for allocating uncacheable CPU memory. The tool runs various checks and gathers basic cache vs. main memory statistics. In the future, uncache could be extended to quantify the benefits of the L1, L2, and L3 caches, instead of treating them as a black box. Note: Uncache works best when compiled with '-O2'. While '-O2' has not been added to the Makefile, other code was updated (code in tests/ and rtspin), to compile with -O2. DEPENDS UPON LITMUS-RT PATCH 888d097deb6d1fdc0c89a4f9667fd81cf416cfc7.
* Add basic locking support to rtspinBjoern Brandenburg2013-02-04
| | | | | | This is useful for testing locking protocol implementations (not intended for benchmarking!), and also serves to document how to use the LITMUS^RT locking API.
* Make use of kernel-provided FP macrosBjoern Brandenburg2012-06-26
| | | | | | Use the kernel's notion of fixed priorities. Also, add some clarifying comments to the task setup wrappers.
* P-FP: make PCP available to user spaceSven Dziadek2012-05-31
| | | | | | PCP was only used for DPCP before tests: add some basic tests for PCP under P-FP
* P-FP: port P-FP plugin used in B. Brandenburg'sSven Dziadek2012-05-31
| | | | | | | | | dissertation (branch bbb-diss) I took the unchanged code but removed references to OMLP which was and is not implemented tests: changed so that they work for P-FP
* Export wctime() and cputime() from rtspin to library clientsBjoern B. Brandenburg2011-02-03
| | | | | The timing functions are quite handy when building benchmark tasks. Avoid copy&paste reuse by making them available via the library.
* bugfix: switch operangs in delay computationBjoern B. Brandenburg2011-02-03
| | | | | We want the positive loop length, not the negative, to prevent jobs from overruning their budget.
* Remove old delay loop configuration cruft from rtspinBjoern B. Brandenburg2011-01-30
| | | | | Using cputime() is much more accurate than the old delay loop auto-configuration. There is no good reason to keep it around.
* Modify RTSpin so that it can read execution time data from a CSV file.Christopher Kenna2011-01-30
| | | | | Still need to figure out what to do with the period is less than the exec_cost (or budget).
* rtspin: transition back to non-real-time modeBjoern B. Brandenburg2010-11-22
| | | | | rtspin produces prettier schedules if it transitions to non-real-time mode before terminating.
* add emergency exit to rtspinBjoern B. Brandenburg2010-11-09
| | | | | | This should only trigger if the execution time tracking is broken (as it was on District10). With the emergency exit, we at least prevent the system from becoming unresponsive.
* rtspin: add -e option to enable PRECISE_ENFORCEMENT2010.2Bjoern B. Brandenburg2010-10-19
| | | | Useful to test how the kernel handles PRECISE_ENFORCEMENT.
* Support budget enforcement policies. Allows tasks to specifyGlenn Elliott2010-05-20
| | | | | | | | how their execution budgets should be enforced: NO_ENFORCEMENT, QUANTUM_ENFORCEMENT, and PRECISE_ENFORCEMENT (unsupported). NOTE: Users of NO_ENFORCEMENT must call sleep_next_period() at the end of every job to signal to the kernel that its job is complete.
* Add -v (verbose) switch to rtspin.Bjoern B. Brandenburg2010-03-10
| | | | | Can be used to dump the delay loop that rtspin is using.
* rtspin: suppress init_litmus() perror() call, it reports rubbishBjoern B. Brandenburg2009-04-29
|
* rtspin: allow fractional costs and periodsBjoern B. Brandenburg2009-04-29
|
* rtspin: use POSIX clock to better approximate runtimeBjoern B. Brandenburg2009-04-14
| | | | this finally appears to work reasonably on Flare
* auto-configure spin loop in rtspinBjoern B. Brandenburg2009-03-25
| | | | | Don't just blindly overrun the budget. Instead, try to measure a spin loop and hope that we get good results.
* replace run with rtspinBjoern B. Brandenburg2008-12-01