#
09d42ac0 |
|
23-Jul-2020 |
Kent McLeod <Kent.Mcleod@data61.csiro.au> |
mcs: Return bound notification SC before ep recv If a thread is running on the SchedContext of it's bound notification, when it next does a blocking recv/wait operation on an ep the SC is removed. This allows the thread to return to being a passive thread to receive the next notification or ep message. Signed-off-by: Kent McLeod <Kent.Mcleod@data61.csiro.au>
|
#
a132a122 |
|
10-Oct-2019 |
Curtis Millar <curtis.millar@data61.csiro.au> |
mcs: Donate scheduling context from bound ntfn When a passive server receives a signal from a bound notification object the SC from the bound notification object should be donated to the TCB in order to handle the notification. Signed-off-by: Curtis Millar <curtis.millar@data61.csiro.au>
|
#
36e5d119 |
|
18-Mar-2020 |
Curtis Millar <curtis.millar@data61.csiro.au> |
Don't unblock current SC If the current SC is bound to a notification and the current thread is deleted it is possible for the current SC to be signalled by the pre-emption. In this case the current SC may be donated to another thread without being changed the value in ksConsumed. refill_unblock_check can only be called on the current SC if ksConsumed is 0. Further, it makes no sense to call refill_unblock_check on the current SC as it was not blocked. Signed-off-by: Curtis Millar <curtis.millar@data61.csiro.au>
|
#
79da0792 |
|
01-Mar-2020 |
Gerwin Klein <gerwin.klein@data61.csiro.au> |
Convert license tags to SPDX identifiers This commit also converts our own copyright headers to directly use SPDX, but leaves all other copyright header intact, only adding the SPDX ident. As far as possible this commit also merges multiple Data61 copyright statements/headers into one for consistency.
|
#
61b88666 |
|
07-Jan-2019 |
Anna Lyons <Anna.Lyons@data61.csiro.au> |
mcs: fix notification donation semantics - update thread state before donate - schedcontext_resume after donate This ensures our scheduling invariants (on the run queue) are held.
|
#
a22cb3d1 |
|
23-Nov-2016 |
Anna Lyons <Anna.Lyons@data61.csiro.au> |
mcs: associate scheduling context + ntfn This commit allows scheduling contexts to be bound to notification objects. When a passive server receives a notification it will receive the scheduling context from the notification. When the server blocks the scheduling context is returned.
|
#
554f812d |
|
08-Nov-2016 |
Anna Lyons <Anna.Lyons@data61.csiro.au> |
mcs: scheduling context donation over ipc After this commit, threads blocked on an endpoint can recieve a scheduling context from the thread that wakes the blocked thread.
|
#
5fe1890a |
|
06-Nov-2016 |
Anna Lyons <Anna.Lyons@data61.csiro.au> |
mcs: order EP and NTFN queues Previously IPC signal queues were FIFO, as of this change they are ordered by priority (FIFO for same prio threads).
|
#
d0930f67 |
|
18-Mar-2019 |
Anna Lyons <Anna.Lyons@data61.csiro.au> |
style: consistently attach return type Add attach-return-type to astyle
|
#
761006e0 |
|
18-Mar-2019 |
Anna Lyons <Anna.Lyons@data61.csiro.au> |
style: consistently align pointer with name Run astyle with align-pointer=name
|
#
f1f6f975 |
|
29-Oct-2018 |
Kofi Doku Atuah <kofidoku.atuah@data61.csiro.au> |
Document the behaviour of bound notification signals Specifically, what happens when a TCB is bound to a notification, and that notification gets signaled while in the TCB is in the middle of waiting during seL4_Call's receive phase.
|
#
8028066a |
|
23-Nov-2017 |
Adrian Danis <Adrian.Danis@data61.csiro.au> |
ksSchedulerAction contains candidate thread instead of target thread Instead of switching to the thread contained in `ksSchedulerAction` on a `schedule` we instead decide between the 'candidate' contained in `ksSchedulerAction`, the current thread or potentially neither if the candidate is deemed invalid and the current thread is blocked. A consequence of this change is that it is no longer meaningful to have a distinction between `switchIfRequiredTo` and `attemptSwitchTo`. Now both these cases simply identify a candidate, which may or may not be picked in `schedule`. Part of the distinction of `switchIfRequiredTo` was to not avoid switching if possible when performing notifications. This is now handled by prefering the current thread over the candidate if the current thread has not blocked. This change is largely semantic preserving overall, with the exception of non-blocking synchronous sends now acting like notifications and also preferring to resume running the current thread. The motivation for this change was to make it much easier for verification to show correspondence between the fastpath changes introduced in the previous commit and the slowpath scheduler.
|
#
ee28936d |
|
18-Jun-2017 |
Hesham Almatary <hesham.almatary@data61.csiro.au> |
SMP: Introduce ENABLE_SMP_SUPPORT - Make it more readable and less confusing compared to the 'CONFIG_MAX_NUM_NODES > 1' check
|
#
b40d95ed |
|
05-Feb-2017 |
Adrian Danis <Adrian.Danis@data61.csiro.au> |
x86: Send explicit TCB when handling remote VMs withs pending notifications Previously if the `ksCurThread` of the destination core is not the thread that is receiving the notification in `sendSignal` then the notification would be delayed until the VMM for that VM next did a `seL4_VMEnter`. This adds a `tcb_t*` parameter to `VMCheckBoundNotification` instead of having it implicitly talk about `ksCurThread`. A TCB parameter is safe to send here as the `doRemoteVMCheckBoundNotification` happens synchronously and so the TCB is guaranteed to still exist.
|
#
7252ab18 |
|
21-Nov-2016 |
Adrian Danis <Adrian.Danis@data61.csiro.au> |
x86: Avoid modifying thread running on different core in sendSignal When sending a signal to a notification object that has a bound thread that is in the 'runningVM' start we, ordinarily, want to deliver it by switching back to the native execution of that thread and delivering the message. If the thread is in the 'runningVM' state on a different core, then we must not modify its thread state. Previously we would modify the thread state (changing it to Running) and then attemptSwitchTo. Switching would fail, as its affinity would be for a different core, resulting in us enqueing the thread into the scheduling queue, despite the thread also presently running. This commit both adds a check to prevent us manipulating a thread that is actively running on a different core, as well as a remote operation to tell that core that if it is running a VM it should recheck its endpoint for a message.
|
#
25bb9437 |
|
24-Oct-2016 |
amrzar <azarrabi@nicta.com.au> |
SELFOUR-635: support for TCB operations This will update TCB invocations to consider multicore environment, this may include: - adds the affinity invocation to transfer TCB between different cores and update TCB structure for core ID - checking the thread/core state before performing TCB operation, e.g. deleting the runnable TCB, etc
|
#
7fbde1bb |
|
14-Jun-2016 |
Adrian Danis <Adrian.Danis@data61.csiro.au> |
SELFOUR-287: 32-bit vt-x implementation This is an implementation of vt-x for x86 kernels running in ia32 mode.
|
#
0151d78d |
|
15-Dec-2015 |
Matthew Fernandez <matthew.fernandez@nicta.com.au> |
Fix comment reference to Haskell error.
|
#
142627ad |
|
02-Dec-2015 |
Gerwin Klein <gerwin.klein@nicta.com.au> |
terminology: updated two async stragglers in comments
|
#
a99a1040 |
|
09-Nov-2015 |
Anna Lyons <Anna.Lyons@nicta.com.au> |
SELFOUR-279: rename Wait -> Recv, add wrappers for seL4_Poll and seL4_Wait for notification objects. This commit deprecates seL4_ReplyWait, removes seL4_NBwait completely, and changes the return type of seL4_Wait to void (seL4_Wait should be used for notification objects, and seL4_Recv should be used where seL4_Wait was used previously for endpoints).
|
#
54603123 |
|
19-Oct-2015 |
Anna Lyons <Anna.Lyons@nicta.com.au> |
SELFOUR-317: rename async endpoint to notification object, and other fallout.
|