PhD Seminar • Programming Languages • A Fair and Scalable Scheduler: The C∀ Thread Scheduler

Thursday, August 11, 2022 1:00 pm - 2:00 pm EDT (GMT -04:00)

Please note: This PhD seminar will take place online.

Thierry Delisle, PhD candidate
David R. Cheriton School of Computer Science

Supervisor: Professor Peter Buhr

User-Level threading (M:N) is gaining popularity over kernel-level threading (1:1) in many programming languages. This talk discusses user-thread schedulers used in different programming languages. It then presents the design and implementation of the C∀ thread scheduler, which achieves equivalent performance while offering better fairness. In doing so, the talk presents a compromise on FIFO fairness and the steps the C∀ scheduler takes to achieve this relaxed fairness requirement. Several optimizations that eliminate the cost of this fairness are presented. The scheduler also handles implicit nonblocking I/O using the new Linux io_uring interface, allowing more user-threads to block on I/O than there are kernel threads. Finally, the design for efficient idle sleep, i.e., blocking idle kernel threads, is presented.