English

The NIC should be part of the OS

Operating Systems 2025-04-24 v2 Hardware Architecture Networking and Internet Architecture

Abstract

The network interface adapter (NIC) is a critical component of a cloud server occupying a unique position. Not only is network performance vital to efficient operation of the machine, but unlike compute accelerators like GPUs, the network subsystem must react to unpredictable events like the arrival of a network packet and communicate with the appropriate application end point with minimal latency. Current approaches to server stacks navigate a trade-off between flexibility, efficiency, and performance: the fastest kernel-bypass approaches dedicate cores to applications, busy-wait on receive queues, etc. while more flexible approaches appropriate to more dynamic workload mixes incur much greater software overhead on the data path. However, we reject this trade-off, which we ascribe to an arbitrary (and sub-optimal) split in system state between the OS and the NIC. Instead, by exploiting the properties of cache-coherent interconnects and integrating the NIC closely with the OS kernel, we can achieve something surprising: performance for RPC workloads better than the fastest kernelbypass approaches without sacrificing the robustness and dynamic adaptation of kernel-based network subsystems.

Keywords

Cite

@article{arxiv.2501.10138,
  title  = {The NIC should be part of the OS},
  author = {Pengcheng Xu and Timothy Roscoe},
  journal= {arXiv preprint arXiv:2501.10138},
  year   = {2025}
}

Comments

Camera ready for HotOS'25