English

Dynamic Recompilation of Software Network Services with Morpheus

Networking and Internet Architecture 2021-06-17 v1

Abstract

State-of-the-art approaches to design, develop and optimize software packet-processing programs are based on static compilation: the compiler's input is a description of the forwarding plane semantics and the output is a binary that can accommodate any control plane configuration or input traffic. In this paper, we demonstrate that tracking control plane actions and packet-level traffic dynamics at run time opens up new opportunities for code specialization. We present Morpheus, a system working alongside static compilers that continuously optimizes the targeted networking code. We introduce a number of new techniques, from static code analysis to adaptive code instrumentation, and we implement a toolbox of domain specific optimizations that are not restricted to a specific data plane framework or programming language. We apply Morpheus to several eBPF and DPDK programs including Katran, Facebook's production-grade load balancer. We compare Morpheus against state-of-the-art optimization frameworks and show that it can bring up to 2x throughput improvement, while halving the 99th percentile latency.

Keywords

Cite

@article{arxiv.2106.08833,
  title  = {Dynamic Recompilation of Software Network Services with Morpheus},
  author = {Sebastiano Miano and Alireza Sanaee and Fulvio Risso and Gábor Rétvári and Gianni Antichi},
  journal= {arXiv preprint arXiv:2106.08833},
  year   = {2021}
}
R2 v1 2026-06-24T03:16:14.932Z