English

Eiffel: Efficient and Flexible Software Packet Scheduling

Networking and Internet Architecture 2018-10-09 v1

Abstract

Packet scheduling determines the ordering of packets in a queuing data structure with respect to some ranking function that is mandated by a scheduling policy. It is the core component in many recent innovations to optimize network performance and utilization. Our focus in this paper is on the design and deployment of packet scheduling in software. Software schedulers have several advantages over hardware including shorter development cycle and flexibility in functionality and deployment location. We substantially improve current software packet scheduling performance, while maintaining flexibility, by exploiting underlying features of packet ranking; namely, packet ranks are integers and, at any point in time, fall within a limited range of values. We introduce Eiffel, a novel programmable packet scheduling system. At the core of Eiffel is an integer priority queue based on the Find First Set (FFS) instruction and designed to support a wide range of policies and ranking functions efficiently. As an even more efficient alternative, we also propose a new approximate priority queue that can outperform FFS-based queues for some scenarios. To support flexibility, Eiffel introduces novel programming abstractions to express scheduling policies that cannot be captured by current, state-of-the-art scheduler programming models. We evaluate Eiffel in a variety of settings and in both kernel and userspace deployments. We show that it outperforms state of the art systems by 3-40x in terms of either number of cores utilized for network processing or number of flows given fixed processing capacity.

Cite

@article{arxiv.1810.03060,
  title  = {Eiffel: Efficient and Flexible Software Packet Scheduling},
  author = {Ahmed Saeed and Yimeng Zhao and Nandita Dukkipati and Mostafa Ammar and Ellen Zegura and Khaled Harras and Amin Vahdat},
  journal= {arXiv preprint arXiv:1810.03060},
  year   = {2018}
}

Comments

This paper is an extended version of the paper on Eiffel that will be published in USENIX NSDI 2019

R2 v1 2026-06-23T04:30:50.153Z