zephyr/doc/kernel
Andy Ross 7aa25fa5eb kernel: Add "meta IRQ" thread priorities
This patch adds a set of priorities at the (numerically) lowest end of
the range which have "meta-irq" behavior.  Runnable threads at these
priorities will always be scheduled before threads at lower
priorities, EVEN IF those threads are otherwise cooperative and/or
have taken a scheduler lock.

Making such a thread runnable in any way thus has the effect of
"interrupting" the current task and running the meta-irq thread
synchronously, like an exception or system call.  The intent is to use
these priorities to implement "interrupt bottom half" or "tasklet"
behavior, allowing driver subsystems to return from interrupt context
but be guaranteed that user code will not be executed (on the current
CPU) until the remaining work is finished.

As this breaks the "promise" of non-preemptibility granted by the
current API for cooperative threads, this tool probably shouldn't be
used from application code.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2018-05-23 14:25:52 -04:00
..
data_passing k_queue: allow user mode access via allocators 2018-05-17 23:34:03 +03:00
memory kernel: internal APIs for thread resource pools 2018-05-16 17:32:59 -07:00
other drivers/interrupt_controller: Introduce multi-level interrupt support 2018-02-06 22:39:05 -05:00
overview doc: change https://zephyrproject.org/doc refs 2018-05-02 18:32:44 -04:00
synchronization doc: Fix K_ALERT_DEFINE in a code example 2018-03-09 20:27:43 -05:00
threads kernel: Add "meta IRQ" thread priorities 2018-05-23 14:25:52 -04:00
timing kernel: make K_.*_INITIALIZER private to kernel 2017-07-10 11:44:56 -07:00
usermode userspace: get dynamic objs from thread rsrc pools 2018-05-16 17:32:59 -07:00
kernel.rst docs: initial user mode documentation 2017-11-07 08:18:48 -05:00