zephyr/include/kernel
Andy Ross 3e696896bf kernel: Add "per thread" timeslice mechanism
Zephyr's timeslice implementation has always been somewhat primitive.
You get a global timeslice that applies broadly to the whole bottom of
the priority space, with no ability (beyond that one priority
threshold) to tune it to work on certain threads, etc...

This adds an (optionally configurable) API that allows timeslicing to
be controlled on a per-thread basis: any thread at any priority can be
set to timeslice, for a configurable per-thread slice time, and at the
end of its slice a callback can be provided that can take action.
This allows the application to implement things like responsiveness
heuristics, "fair" scheduling algorithms, etc... without requiring
that facility in the core kernel.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2022-03-09 13:49:44 -05:00
..
mempool_heap.h kernel: mempool_heap: fix header guard 2021-06-16 20:38:55 -04:00
sched_priq.h kernel: add 'static' keyword to select routines 2021-12-13 17:21:58 -05:00
stats.h kernel/sched: enable/disable runtime stats 2022-01-10 10:38:06 -05:00
thread.h kernel: Add "per thread" timeslice mechanism 2022-03-09 13:49:44 -05:00
thread_stack.h kernel: macro to define pinned kernel thread stacks 2021-08-26 21:16:22 -04:00