aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAge
...
* Modernize rt_launch; remove internal API cruftBjoern Brandenburg2014-06-03
| | | | | | | Switch rt_launch to use a more modern way to launch real-time tasks. This makes rt_launch more flexible, makes it more similar to rtspin, and also allows to let us get rid of a chunk of old, inflexible code in liblitmus that wasn't really serving any useful purpose anymore.
* Remove over-specification of task parameters from two testsBjoern Brandenburg2014-06-03
| | | | Don't override the defaults unless required.
* FIX: Add S_IRUSR to open() for DFLP.Glenn Elliott2014-05-19
| | | | | This patch adds S_IRUSR as the third parameter to open() in the DFLP locking unit test.
* Migration: Support systems with more than 32 CPUs.Glenn Elliott2014-05-19
| | | | | | | | | | | | This patch improves the cpu bit map parsing used to determine CPU/cluster mapping. Namely, it supports clusters with more than 32 CPUs. Prior to this patch, mapping would fail due to unexpected commas in bitfield data read from /proc (groups of 32 CPUs are separated by commas). NOTE: Bug could still be encountered if NR_CPUS > 32. New CPU limit: 4096.
* Remove invalid CPU parameter testBjoern Brandenburg2014-04-01
| | | | | | | | The LITMUS^RT kernel was changed to no longer test for "invalid" CPU paramters to allow reuse of the CPU parameter to denote virtual CPUs, reservations, etc. This patch removes the corresponding test.
* Add add convenience wrapper and tests for the DFLPBjoern Brandenburg2014-04-01
|
* Add support for the DFLPBjoern Brandenburg2014-04-01
| | | | Just add the ID and symbol.
* Add missing default param initializationBjoern Brandenburg2014-04-01
| | | | | | Make sure new default parameters such as the deadline are taken care of in the old task creation routines. This fixes a problem with rt_launch.
* Add test cases for exiting/mode-changing lock holdersBjoern Brandenburg2014-03-19
| | | | | This crashes old versions of the kernel. Kernel patches fixing the various panics have been merged into the kernel staging tree.
* liblitmus/tests: Add PCP-DPCP interleaving testRoy Spliet2014-03-19
|
* 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]
* Hook up doxygen as 'make doc'Bjoern Brandenburg2013-11-27
| | | | Also adjust 'make clean' and .gitignore.
* liblitmus: Add Doxygen documentation for public APIsRoy Spliet2013-11-27
|
* liblitmus/bin: Use inttypes.h macros for 64-bit integer printingRoy Spliet2013-11-11
| | | | | | Fixed build on ARMv7 Signed-off-by: Roy Spliet <rspliet@mpi-sws.org>
* Fix for C++: 'namespace' renamed to 'name_space'Glenn Elliott2013-09-27
| | | | | | | Renames the 'namespace' parameter to litmus_open_lock() forard declaration in litmus.h to 'name_space'. This allows litmus.h to be compiled by a C++ compiler. (Note: Using 'extern "C" {}' does not work as an alternative solution.)
* Switch NP flag format back to 32 bits (uint32_t)2013.1Bjoern Brandenburg2013-07-21
| | | | This matches the corresponding change in the kernel.
* Port Makefile to new Linux kernel header layoutBjoern Brandenburg2013-07-11
| | | | | | | | | | | The userspace versions of unistd.h have moved to include/uapi/asm in recent kernel versions; we need to adjust the liblitmus Makefile accordingly. Further, on x86, the unistd_32.h and unistd_64.h files are now actually being auto-generated; this also forced adjustments. This patch is required for liblitmus to compile against Linux 3.10.
* User large enough buffer to read /proc/litmus/release_masterpgmHiroyuki Chishiro2013-07-02
| | | | The string 'NO_CPU' needs to fit into the buffer.
* Add a test for admission of tasks that are currently runningBjoern Brandenburg2013-06-08
| | | | | Complements the prior test for suspended tasks. All plugins currently pass this test.
* Add testcase for admission of suspended tasksBjoern Brandenburg2013-06-08
| | | | | | The kernel needs to be able to deal with tasks that do not make themselves a real-time task, but get configured by some other task instead.
* Update constat SPORADIC->TASK_SPORADICBjoern Brandenburg2013-06-08
| | | | | A recent patch changed the name of the constant in the kernel. Update liblitmus accordingly.
* Fix compile failure related to aliasing (gcc 4.4.5)Bjoern Brandenburg2013-04-17
| | | | | | | | My version of gcc would complain about "dereferencing pointer does break strict-aliasing rules" because of a (harmless) pointer cast. This patch adds a helper void pointer to make the assignment explicit, which avoids the cast and hence silences the warning.
* 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.
* Add init_rt_task_param().Glenn Elliott2013-03-12
| | | | | Adds init_rt_task_param(). Facilitates setting up default real-time task attributes that cannot be set by memset(0).
* 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().)
* Make github/staging complatible with -O2.Glenn Elliott2013-03-12
| | | | | Minor changes to test case code to enable compilation with 'gcc -O2' (gcc v4.7.2).
* 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 test cases that check whether nesting is prohibitedBjoern Brandenburg2013-02-15
| | | | | The kernel should deny attempts to nest resources in ways that are not supported.
* 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.
* Include PID info in test failuresBjoern Brandenburg2013-01-14
| | | | Useful for correlating test failures to events in traces.
* Add tests for PCP/SRP ceiling blockingBjoern Brandenburg2013-01-11
| | | | | Context: priority inheritance triggered a BUG_ON() in fp_common.c. While at it, add a similar test for the SRP.
* rt_launch: add support for -q <priority>Bjoern Brandenburg2013-01-11
| | | | This mirrors the option in rtspin.
* Make release_ts a bit more userfriendlyBjoern Brandenburg2013-01-11
| | | | | | | The -f option required manually *also* setting the -w option. This is no longer required. While at it, simplify the code by using the /proc interface.
* Pull fpmath.h for use in liblitmus.2012.3Glenn Elliott2012-12-21
| | | | | | Branch litmus-rt/prop/robust-tie-break added fpmath.h for fixed-point computations. Updated Makefile to pull this header from litmus-rt so it may also be used in liblitmus.
* Add control page offset checksstagingBjoern Brandenburg2012-12-06
| | | | | Make sure the kernel and userspace compilers have the same idea of the layout of the control page.
* Add testcase for preemptions on wakeup under P-EDF and P-FPBjoern Brandenburg2012-08-14
| | | | | | Resuming higher-priority tasks should of course preempt lower-priority tasks. This test case infers if higher-priority tasks are unreasonably delayed.
* Implement lt_sleep() syscall wrapperBjoern Brandenburg2012-08-14
| | | | | Wrap nanosleep() to make sleeping for a given number of nanoseconds easier, using the LITMUS^RT time type lt_t.
* Implement get_nr_ts_release_waiters() /proc wrapperBjoern Brandenburg2012-08-14
| | | | | Add a wrapper for /proc/litmus/stats to make it easy to query the number of tasks already waiting for a task set release.
* Reduce artifical delay in testBjoern Brandenburg2012-08-14
| | | | | The 2 second delay was quite annoying. Make it short enough to not be so obvious.
* Add tests for the DPCP and the MPCPBjoern Brandenburg2012-08-14
| | | | | Do the basic open/lock/unlock/close test sequence for the MPCP and the DPCP as well.
* Add convenience wrappers for the DPCP and MPCPBjoern Brandenburg2012-08-14
| | | | For consistency reasons and to document the cpu parameter of the DPCP.
* git: ignore files generated by the build systemBjoern Brandenburg2012-08-14
| | | | Prevents accidental staging of auto-generated files.
* test case: reject infeasible densities2012.2archive/unc-master-3.0Bjoern Brandenburg2012-08-01
| | | | | Add a test that makes sure that the kernel does indeed not accept infeasible densities.
* Run test suite for currently active plugin by defaultBjoern Brandenburg2012-08-01
| | | | Try to infer current plugin if no plugin is specified.
* Add a little explanation to the basic task prototypesBjoern Brandenburg2012-08-01
| | | | Also add the priority parameter, which was missing.
* API Update: Support arbitrary deadlines.Glenn Elliott2012-08-01
| | | | | | | | Updated APIs to support arbitrary deadlines. Added macros for implicit deadlines. Note: Had to tweak Makefile to support gcc version >= 4.6 (moved -lrt to the end of the link command).
* Properly report tests that segfault.Bjoern Brandenburg2012-07-23
| | | | | Segmentation faults are clearly test failures; make sure to report them accordingly.
* New test: /dev/litmus/ctrl must be writableBjoern Brandenburg2012-07-23
| | | | | Under any plugin, the control page should be mappable and writable.
* Add test cases for P-FP prioritiesBjoern Brandenburg2012-06-26
| | | | | Make sure out-of-range priorities are always rejected.