Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 14 Next »

PACKING REPLICATED WRITES (Utilizing CPU Time while waiting on replicated writes)

LOAD BALANCING BETWEEN CORES

  • Choosing an idle core for a new task
  • New task creation when all cores are busy (Slow path for user thread creation)
    • Single Global Queue vs Per-Core Queues needs an experiment.
  • Task migration to balance load? (may not be needed if tasks are sufficiently short-lived)

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?

PRIORITIES AND STARVATION

BENEFITS / SELLING POINTS / CONTRIBUTIONS

USER API

  • How much of knowledge of cores should bubble up to the application?
  • What kind of guidance / hints can application offer to Arachne? e.g. priorities.

 

KERNEL API

 

CORE NEGOTIATION PROTOCOL

  • What is said about cores?
  • What is the mechanism for the communication? (e.g., shared memory, system call, etc.)

HANDLING BLOCKING SYSCALLS IN KERNEL (may be able to ignore for a while)

  • 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

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

 

  • No labels