| Commit message (Collapse) | Author | Age |
| |
|
|
|
|
|
|
| |
1) gpusync daemon mode.
2) engine yield logic
3) fixed chunking (did not work on memcpys > 2 chunks)
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
The SIG_BUDGET should be ignored until the user
code is ready for them, even if that code has
already set up a signal handler.
|
|
|
|
|
|
|
| |
This updates create_rt_task() to take an rt_task parameter
instead of a number of task parameters. This probably
should have been a part of patches recent patches that revised
the sproadic_*() macros.
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
bin/base_mt_task.c
bin/rt_launch.c
bin/rtspin.c
include/litmus.h
src/litmus.c
src/task.c
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| | |
Adds init_rt_task_param(). Facilitates setting up default
real-time task attributes that cannot be set by memset(0).
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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).
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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().)
|
|\|
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
Makefile
bin/rt_launch.c
bin/rtspin.c
src/task.c
|
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| | |
This mirrors the option in rtspin.
|
| |
| |
| |
| |
| |
| |
| | |
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.
|
| | |
|
| | |
|
|\|
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
Makefile
bin/rtspin.c
include/litmus.h
src/litmus.c
|
| |
| |
| |
| |
| | |
Make sure the kernel and userspace compilers have the same idea of the
layout of the control page.
|
| |
| |
| |
| |
| | |
Wrap nanosleep() to make sleeping for a given number of
nanoseconds easier, using the LITMUS^RT time type lt_t.
|
| |
| |
| |
| |
| | |
Add a wrapper for /proc/litmus/stats to make it easy to query the
number of tasks already waiting for a task set release.
|
| |
| |
| |
| |
| |
| |
| |
| | |
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).
|
| |
| |
| |
| |
| |
| | |
PCP was only used for DPCP before
tests: add some basic tests for PCP under P-FP
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| | |
|
|\ \
| | |
| | |
| | |
| | |
| | | |
Conflicts:
Makefile
src/syscalls.c
|
| |\ \
| | | |
| | | |
| | | |
| | | | |
Conflicts:
Makefile
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Also changed the LITMUS_TRY/LITMUS_CATCH/END_LITMUS_TRY macros
to use if/else-if chains instead of switch statements. This is
because SIGRTMAX is a variable in libc and not a compile-time
constant (switches cant be used).
|
| | |/
| | |
| | |
| | |
| | |
| | |
| | | |
Add support for handling Litmus-specific signals. Includes
framework try/catch-style handling of signals.
SIG_BUDGET is the only Litmus signal at the moment.
|
| | | |
|
| |/ |
|
|/ |
|
|
|
|
| |
Everything is in one 32-bit word now.
|
|
|
|
| |
we need uint64_t in litmus.h
|
|
|
|
|
| |
The new generic lock layer in LITMUS^RT does away with per-protocol
system calls. Change accordingly.
|
|
|
|
|
| |
The timing functions are quite handy when building benchmark tasks.
Avoid copy&paste reuse by making them available via the library.
|
|
|
|
|
|
|
|
|
|
|
| |
For historic resons, we carry old atomic operations support in
liblitmus. This is no longer useful:
1) There is actually no client for these calls in liblitmus.
2) There is now a standard gcc API for this purpose.
http://gcc.gnu.org/onlinedocs/gcc/Atomic-Builtins.html
Thus, we can reduce our maintenance burden.
|
|
|
|
| |
Move the architecture-dependent code to the arch/ subtree.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The kernel warns against including header files directly. For good
reason: our previous approach (just -I$KERNEL/include) caused all
kinds of files to be included that should have come from /usr/include
instead.
This patch rewrites the Makfile so that the (few) needed headers are
copied into the liblitmus src tree before compiling the library. This
avoids having to specify the kernel include directories with -I, and
also makes it easier to link against liblitmus (external applications
do not need to know where the kernel is).
Finally, this allows us to enable -Werror.
|
|
|
|
|
|
|
| |
This avoids passing random stack contents to the kernel
if the structure gained some fields due to plugin development.
(Also, fix up some white space issues while we are at it.)
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
Layered on top of the LITMUS control page.
|
| |
|
| |
|
|
|
|
| |
Doesn't work reliably right now anyway.
|
|
|
|
| |
Allows for higher-precision setup of real-time tasks.
|
| |
|