A Non-Work-Conserving Operating System Scheduler For SMT Processors

Alexandra Fedorova, Margo Seltzer, Michael D. Smith · 2006

Simultaneous multithreading (SMT) processors run multiple threads simultaneously on a single processing core, and the threads compete for the processor’s shared resources. Severe resource contention can lead to performance degradation. On SMT processors it is often beneficial to employ a non-work- conserving scheduling policy: running fewer threads simultaneously than the processor allows even if there are threads ready to run. In cases of severe resource contention, non-work- conserving scheduling can alleviate the contention significantly enough so as to result in better performance than if the processor were utilized to the full extent. Conventional operating systems typically do not employ non-work-conserving policies. We present a prototype of an operating system thread scheduler that uses a non-work-conserving policy whenever it may result in better performance. To determine when to use the non-work- conserving policy, the scheduler uses an analytical model that, unlike existing models, is sufficiently simple and practical for use inside the operating system. We demonstrate that the scheduler using our model correctly determines when to use the non-work- conserving policy and improves performance in those cases.

Read the paper · More papers on PaperTik