| Commit message (Collapse) | Author | Age |
|
|
|
|
| |
Allow user space to set up service levels, also allow RT tasks to query
their current service level.
|
|
|
|
|
|
| |
This commit introduces the infrastructure for flag based np sections. It
also features an overhauled GSN-EDF scheduler that respects the flags (and
has less bugs).
|
|
|
|
| |
Allow userspace to wait for a specific job release.
|
|
|
|
| |
This allows us to remove the debugging code from benchmarking kernels.
|
|
|
|
| |
scheduler_tick() and schedule() callbacks.
|
|
|
|
|
| |
Rearrange the code to get out of the architecture dependent areas of
the kernel and make it live in a central file, kernel/litmus_sem.c.
|
| |
|
| |
|
|
|
|
| |
correctly, mostly by adding waitqueues and rewriting wait_until_exceed_spc.
|
|
|
|
| |
Before FIFO, everything seemed to be (finally) working ok.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
glitch or two in GSN-EDF.
|
|
|
|
| |
semaphore-related calls.
|
|
|
|
| |
working okay.
|
|
|
|
| |
could be re-validated after some changes.
|
|
|
|
|
|
| |
than a pointer to a task_struct. This eliminates the need to define the
task_struct struct in user space, and also makes the system call cleaner.
Required lookup of the task in the new system call.
|
|
|
|
| |
a small bug in semaphore free methods for all user-level semaphores.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
which needs to be expanded in the LSO and by adding system call numbers in
kernel space.
|
|
|
|
| |
semaphore.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
PI semaphores now use scheduler callbacks to update priority on a down or
up call. Issues with calling down/up and not calling __down_failed or
__up_wakeup for PI semaphores has been noted (since priority-related things
occured in those calls) and up has been fixed (down is in process).
Callbacks are now responsible for the priority checks and
updates, and some subtle cases are handled that were missed before. Still
need to finish handling GSN-EDF implementation issues related to suspensions.
|
|
|
|
| |
edf-common.c, left other stubs untouched until tomorrow.
|
|
|
|
| |
process...
|
|\
| |
| |
| |
| | |
Bjoern's changes + mine. Still need to fill in some stubs and ensure that
nothing broke.
|
| | |
|
| |
| |
| |
| |
| | |
semaphores accessible through system calls, so that they can be used with
the LSO (for partitioned FMLP).
|
| |
| |
| |
| | |
actually is called at boot.
|
| |
| |
| |
| | |
another pointer issue.
|
| |
| |
| |
| |
| |
| |
| |
| | |
A user now makes a system call where a semaphore ID is specified, and
the semaphore implementation is hidden away in the kernel. There are a
finite number of semaphores and the kernel system call will return an error
if it cannot claim one, however user space code in libso does not yet
acknowledge this.
|
| |
| |
| |
| | |
tested.
|
| |
| |
| |
| |
| |
| |
| | |
priority inheritance. Also fixed a few bugs. Many files were modified, as
the PI semaphores were are implementing replicate much of the original
Linux semaphore implementation with minor changes, often causing a cascade
of changes as functions were chased down and changed in several files.
|
| |
| |
| |
| | |
inheritance, for use in our synchronization implementation.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Added two system calls, one to check if we are in the blocking zone, and
one to wait until we exit the blocking zone. Both calls rely on some
additional support from the local timer interrupt handler. Everything still
needs to be tested with the zone-lock implemention in user space,
especially under many different types of race conditions.
|
| |
| |
| |
| |
| |
| |
| | |
System calls and user-level code in libso related to zone-based locking
still needs to be tested. Additionally, need to fix an issue getting the
time of day within an interrupt handler --- the current method will compile
but it will not run because of the need to claim a lock in the handler.
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
sys_wait_for_zone_exit waits on a flag which is cleared during the local
timer interrupt. Yet more race conditions have been avoided by performing
zone checks before waiting for the flag, and by setting the flag *before*
performing the zone check, so that if we enter the loop immediately after
leaving the blocking zone, we are still okay.
|
|/
|
|
| |
zone-based locking.
|
| |
|
|
|
|
|
|
|
|
|
| |
Renamed function in timer.c, removed personal EXTRAVERSION from Makefile,
changed some other small things. Aligned and staggered quanta are now
working properly, Use quanta=staggered as a boot option to get staggered
quanta, and no boot option (or quanta=aligned) to get aligned quanta. In
most cases, quantum alignments are even more precise now than they were
previously (less than 5 microseconds versus 10-20 microseconds).
|
|
|
|
|
|
|
|
| |
Provided a boot option that allows either aligned or staggered quanta to
be chosen, and added a TRACE call that displays the offsets from the global
timer tick at each CPU, in order to debug each type of quanta.
Code related to periodic resynch is still commented out and will be
debugged soon.
|
|
|
|
|
|
| |
Tried to read the amount of time since the last global timer interrupt
occurred and log that time on all processors using TRACE, but I think locks
are causing me grief, because the system instead hangs.
|