...
HOW TO INTEGRATING PRIORITIES INTO CREATE THREAD MECHANISM -
- We want the priorities to be orthogonal to the thread creation mechanism
...
- Might involve 'accepting' a low-priority thread creation request without running it.
...
- Since we cannot predict the priority of threads to come, and it is not
...
- desirable to block them from enqueuing on the fast path, it may make most
...
- sense to always first use a stack on the receiving core, and then
...
- immediately if there are higher priority threads.
LOGICAL CONCURRENCY VS DESIRED PARALLELISM (CORE COUNT)
- - They are far from identical, because of threading for convenience and deadlock avoidance.
- - When should we ask the kernel for more cores, and when should we return cores to the kernel?
- - Tradeoff - Core efficiency vs latency vs throughput
- Greedy core allocation is not necessarily best even for latency?
- How many cores would we be wasting if we did that?
TIMING GUARANTEES UNDER COOPERATIVE THREADING -
- Can we have any kind of timing guarantees without preemption?
...
- If app helps, we can bound the tail latency scheduling contribution to the largest time between yield?
...
- Assuming sufficiently few deadlined threads relative to the number of cores,
...
- an application can bound the maximum time before a deadlined thread gets to
...
- run by the longest non-yielding run time of a non-deadlined thread.
...
- How expensive is a yield call / especially a no-op yield call?
...
- Hope to make it a few ns.
PRIORITIES
- Current thought is that two priorities are sufficient, but it is possible more are needed.
...