| Commit message (Collapse) | Author | Age |
|
|
|
| |
features.
|
|
|
|
| |
Signed-off-by: Christopher Kenna <cjk@cs.unc.edu>
|
|
|
|
| |
This commit is dirty and will be cleaned up when blocking states are tested.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Both sched_color and sched_mc assumed seperate kernel and userspace views of job
states, where the kernel view is used for scheduling while the userspace view
is used for statistics (tardiness etc). This commit merges both approaches.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This required fixes to hrtimer_start_on code so that events can be cancelled
or re-armed while an hrtimer pull is in progress.
|
|
|
|
|
|
|
|
|
|
|
| |
Timers had an issue where they couldn't be cancelled before they migrated.
Now when you set the start_on_info to inactive, it will prevent a timer
from being armed.
When a task is being blocked and preempted concurrently, the blocking code
needs to be able to prevent the task from being scheduled on another CPU.
This did not work for CE domains. Added a per-domain remove function
which, for ce domains, will prevent a task from being returned by the domain.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
THIS CODE IS UNTESTED
We now initialize one event group for each cpu on system start. We can
get the event group for a CPU via a function in event_group.c
Another change is that an event now stores what group it is in when it
add_event() is called on it. This lets us cancel it without knowing what
event group it is in.
The above is important because Level-C events (like releases) have a
NULL event group. When calling add_event(), it will get the event group
of the current CPU. If the event needs to be canceled later, we need
that saved group in the event so we know where to remove it from.
|
|\ |
|
| | |
|
| | |
|
|/ |
|
|
|
|
|
| |
Also started to fix typos in Jonathan's code, but there were too many
after I realized that event_group.o was not in the LITMUS Makefile.
|
|
|
|
|
|
|
|
|
| |
The new code tracks CE jobs so that we can detect if a CE task falls
behind due to jobs overrunning their budgets.
There are also various bug fixes related to timers.
We may not want to arm timers until the task release, as well.
|
|\
| |
| |
| | |
ssh://cvs.cs.unc.edu/cvs/proj/litmus/repo/litmus2010 into wip-mc
|
| | |
|
|/ |
|
|\
| |
| |
| | |
ssh://cvs.cs.unc.edu/cvs/proj/litmus/repo/litmus2010 into wip-mc
|
| |
| |
| |
| |
| | |
This is not tested and missing everything for /proc. I just am checking
it in so that it the code is backed up in a git repository.
|
|/ |
|
| |
|
|
Add linux kernel configuration option CONFIG_LITMUS_MC.
Attempt to restore rt_param.h to its original state as much as possible.
Remove fields from rt_task and rt_job and move them into a new mc_data
struct. Added mc_data field to rt_param compiled in only if using MC
plugin.
Make a new MC plugin specific header that contains a mc_data struct,
which is a container for mc_task struct and a mc_job struct.
Update sched_mc.c to use the new data structures. Also, add some macros
that simplify the code, e.g., getting task criticality quickly.
Add system call to set MC plugin specific stuff. Check for the change in
liblitmus.
Add a few lines to exit_litmus to reclaim the MC plugin mc_data struct
in the task_struct on task exit.
|