seL4/include/kernel
Adrian Danis 8028066a65 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.
2017-11-28 10:18:35 +11:00
..
boot.h refactor: initialise common core state in one place 2017-03-16 11:15:04 +11:00
cspace.h unsigned int -> word_t 2015-12-10 10:45:21 +11:00
faulthandler.h SELFOUR-413: refactor libsel4 fault API 2016-11-25 12:29:07 +11:00
stack.h Fix licenses (the rest) 2017-06-22 15:29:12 +10:00
thread.h ksSchedulerAction contains candidate thread instead of target thread 2017-11-28 10:18:35 +11:00
traps.h SMP: move lock.h to architecture-independent include/smp 2017-01-16 15:21:50 +11:00
vspace.h SELFOUR-518: User-level log buffer 2016-08-15 15:06:38 +10:00