DATA STRUCTURE FOR TASKS THAT DO NOT YET HAVE A CORE (Slow path for user thread creation)
- Single Global Queue vs Per-Core Queues needs an experiment.
LOGICAL CONCURRENCY VS DESIRED PARALLELISM (CORE COUNT)
- When should we ask the kernel for more cores, and when should we return cores to the kernel?
TIMING GUARANTEES UNDER COOPERATIVE THREADING
- Can we have any kind of timing guarantees without preemption?
BENEFITS / SELLING POINTS / CONTRIBUTIONS
KERNEL API
CORE NEGOTIATION PROTOCOL
- What is said about cores?
- What is the mechanism for the communication? (e.g., shared memory, system call, etc.)
Mostly Solved Issues
MINIMUM TIME TO SCHEDULE A USER THREAD ONTO ANOTHER CORE
What is the correct architecture for the fast path, and what is the lowest possible time to schedule to another core?
DEFINITION OF CORE AWARE
- Knowledge of the number of nature of physical cores must move up the stack from the kernel into user-level libraries and possibly into applications
HANDLING BLOCKING SYSCALLS IN KERNEL
- Should Arachne know about the blocked user thread?
- What to do when syscall finishes? Don't preempt; shove the unblocked user thread into a queue