Home · ASPLOS 2026 · Operating Systems & Virtualization

SG-IOV: Socket-Granular I/O Virtualization for SmartNIC-Based Container Networks

Chenxingyu Zhao, Hongtao Zhang, Jaehong Min, Shengkai Lin, Wei Zhang, Kaiyuan Zhang and 2 others

Conference
ASPLOS 2026
Published
2026
Pages
1727-1748
Citations
0

Cloud hosts run thousands of containers whose networking eats a huge amount of CPU, and the obvious fix — offload it onto a SmartNIC using the standard hardware-sharing mechanism, SR-IOV — does not fit, because SR-IOV only scales to a few hundred virtual NICs and works on raw packets, not the socket-level streams containers actually use; this paper (University of Washington and UW-Madison — Chenxingyu Zhao, Ming Liu, Arvind Krishnamurthy, and colleagues) presents SG-IOV, which virtualizes the NIC at the granularity of individual sockets by letting software steer control signals while the accelerator moves the data, scaling past 4,000 devices and saving up to 1.9 CPU cores per 10 Gbps.

The argument in one glance

  1. Problem

    Container networking burns a lot of CPU, and offloading it does not fit

    In modern clouds, applications run as containers — many lightweight, isolated processes packed onto each host, often thousands per machine — and giving each container its network connectivity is a form of I/O virtualization: sharing the physical network interface among many virtual consumers. Container networks are feature-rich (routing, filtering, load balancing, policy) but they run in software on the host CPU, and that imposes a heavy "CPU tax": a large fraction of the host's processors is spent shuffling and processing packets rather than doing useful application work, and there is clear room to make this more efficient. The obvious idea is to offload the container network onto hardware — a SmartNIC, a network card with its own processors and accelerators — through the standard I/O-virtualization interface. But the mechanisms that exist for hardware I/O virtualization, chiefly SR-IOV (Single Root I/O Virtualization), were designed for a different world and are misaligned with what containers need in three ways: SR-IOV supports only a limited number of virtual devices (on the order of a few hundred virtual functions per NIC) while hosts pack far more containers; it exposes a packet-layer abstraction while containers want application-layer, socket-level processing; and it is coarse-grained while container workloads are fine-grained. So the natural offload path is blocked by a mismatch between the hardware's virtualization model and the container's.

  2. What people did

    Offload with SR-IOV virtual functions

    The established way to give hardware I/O directly to many tenants is SR-IOV: a physical NIC exposes a set of "virtual functions," each of which looks like an independent NIC that can be assigned to a VM or container, so traffic bypasses the host software stack and goes straight to hardware. This works well for a modest number of virtual machines, each wanting a whole virtual NIC that moves raw packets. The plan would be to hand each container an SR-IOV virtual function and let the SmartNIC do the networking.

  3. Why it fell short

    SR-IOV is too few, too low-level, and too coarse for containers

    Each of SR-IOV's assumptions breaks for containers. First, scale: virtual functions top out at a few hundred per NIC, but a host may run thousands of containers, so there simply are not enough virtual devices to go around — the density of containers vastly exceeds the density of SR-IOV devices. Second, abstraction level: SR-IOV moves raw packets, but container networking is about application-layer processing over sockets — connections carrying byte streams of application messages — so a packet-layer interface forces the very software processing you were trying to offload to happen somewhere anyway. Third, granularity: SR-IOV virtualizes at the coarse grain of a whole virtual NIC, while container workloads are fine-grained, wanting per-socket, per-message treatment. The result is that the standard hardware I/O-virtualization mechanism cannot efficiently host a dense fleet of containers doing application-level networking. What was missing was an I/O-virtualization mechanism designed for containers from the start — one that virtualizes at the right, fine granularity (the socket), works at the right abstraction (application message streams, not packets), and scales to thousands of devices — all while still being enforceable and efficient on a real SmartNIC.

  4. This paper's idea

    Virtualize per socket; software steers signals, hardware moves payload

    SG-IOV (Socket-Granular I/O Virtualization) is a new I/O-virtualization mechanism built for offloading container networks. Instead of a handful of whole-NIC virtual functions, it provisions socket-level devices — virtualizing at the granularity of an individual socket. It works over a message-stream abstraction and supports size-varying transformations, matching the application-layer, variable-size nature of real container traffic rather than fixed packets, and it enables genuinely granular virtualization. Realizing this is hard: finer granularity stresses device scalability (many more devices to support), size-varying message processing complicates I/O buffer management, and having many fine-grained devices strains the hardware's ability to enforce isolation between tenants. SG-IOV's core principle resolves all three: software mediates the signals (such as descriptors — the small control-plane structures that say where data is and what to do with it) while the accelerator touches the payload (the bulk data). Separating control from data this way unlocks three innovations: resource multiplexing, which lets many socket devices share limited hardware so the design scales; adaptive handling of size-varying tasks, which manages the variable message sizes; and intermediate queuing, which enforces virtualization and isolation. The authors prototype SG-IOV on the latest NVIDIA BlueField-3 SmartNIC and deliver an end-to-end container-network solution. It scales beyond 4,000 devices (10 times more than SR-IOV virtual functions); compared with Cilium, a widely-used software container network, it saves up to 1.9 CPU cores per 10 Gbps of traffic, achieves 53 percent higher bandwidth, and reduces latency by up to 48 percent.

Why this problem is worth solving

Container networking is one of the largest and most pervasive CPU costs in the cloud, so moving it to hardware efficiently frees real capacity across the entire fleet.

Cloud computing has consolidated around containers, and every container needs the network — which means the container network is not a niche service but a piece of infrastructure that touches essentially all cloud traffic. Because it runs feature-rich policy and processing in software on the host, it consumes a substantial and continuous share of every host’s CPU, cycles that could otherwise run paying workloads. Multiplied across a datacenter of thousands of hosts, that CPU tax is enormous. Offloading it to a SmartNIC is attractive precisely because it can reclaim those cycles wholesale, and SmartNICs are increasingly standard datacenter hardware. But the offload only pays off if the hardware’s I/O-virtualization model actually fits how containers use the network — dense, socket-based, application-level, fine-grained. When the standard mechanism does not fit, operators are stuck either paying the software CPU tax or contorting their deployments to SR-IOV’s limits, neither of which is good. So building an I/O-virtualization mechanism aligned with containers is what turns SmartNIC offload from a promising idea into a deployable one, and the payoff — nearly two cores saved per 10 Gbps, more bandwidth, lower latency — is exactly the kind of efficiency gain that compounds across a fleet. Because container density and traffic keep rising, an approach that scales to thousands of devices is what keeps the offload viable at cloud scale.

The key realization is that the hard parts of fine-grained virtualization all become tractable once you split the control signals from the bulk data.

Trying to virtualize a NIC at socket granularity looks like it should collapse under its own weight: thousands of tiny devices strain any scheme for scalability, isolation enforcement, and buffer management, which is exactly why hardware virtualization has stayed coarse. SG-IOV’s insight is that these difficulties are concentrated in the wrong place if you treat every device as a full hardware entity that both decides what to do and moves the data. The two responsibilities have very different characters. Deciding what to do — parsing descriptors, choosing where a message goes, enforcing which tenant may do what — is control-plane work: small, logic-heavy, and needing flexibility and policy, which is what software is good at. Moving the payload — the actual bytes of application messages — is data-plane work: bulk, bandwidth-bound, and needing raw speed, which is what an accelerator is good at. By having software mediate the signals while the accelerator touches only the payload, SG-IOV puts each kind of work where it belongs, and the three hard problems dissolve into three matching techniques: because software handles the lightweight signals, many socket devices can be multiplexed onto limited hardware (scalability); because software sees the descriptors, it can adaptively handle size-varying messages; and because payload flows through intermediate queues the software governs, isolation between tenants can be enforced without giving each tiny device its own rigid hardware channel. The deep move is a division of labor along the control-versus-data seam, which is what makes fine-grained, application-level virtualization both flexible enough for containers and fast enough for a SmartNIC.

What people did before, and where it broke

  • Run the container network in software on the host. Do routing, filtering, and policy on the host CPU. Where it broke. It imposes a heavy CPU tax, consuming a large share of host processors on networking rather than applications.
  • Offload with SR-IOV virtual functions. Give each container a hardware virtual NIC. Where it broke. Virtual functions top out at a few hundred per NIC, far fewer than the thousands of containers a host runs.
  • Use SR-IOV’s packet abstraction. Move raw packets to and from each virtual function. Where it broke. Containers need application-layer, socket-level processing, so a packet interface leaves the software processing to be done anyway.
  • Virtualize at whole-NIC granularity. Treat each tenant as needing a coarse virtual device. Where it broke. Container workloads are fine-grained, wanting per-socket, per-message handling that a coarse device cannot provide.
  • The gap. No I/O-virtualization mechanism virtualized at the socket granularity, over an application message-stream abstraction, and scaled to thousands of devices while staying enforceable and efficient on a real SmartNIC.

How SG-IOV works

From coarse SR-IOV virtual functions to socket-granular offload

  1. new

  2. new

  3. new

  4. new

  5. new

The idea

Move the container network off the host CPU onto the SmartNIC. SG-IOV’s purpose is to reclaim the CPU that software container networking consumes by offloading the work to programmable NIC hardware. Taking network processing off the host processor and onto a NIC or accelerator, so the CPU is freed for application work, is the same enterprise the work on a network driver for your accelerator (FlexDriver) covered elsewhere on this site pursues, giving software an efficient path to offload networking to hardware. SG-IOV offloads the specific, dense, application-level workload of container networking.

Design the virtualization mechanism to fit the workload, at fine granularity and scale. Rather than force containers onto SR-IOV’s coarse, few, packet-level virtual functions, SG-IOV provisions socket-granular devices that scale to thousands and match the application-layer abstraction. Building an I/O-virtualization mechanism that gives many tenants efficient, isolated, scalable access to a shared device rather than accepting a coarse, limited interface is the same goal the work on exit-less isolated and shared access for virtual machines (exit-less access) covered elsewhere on this site pursues, rethinking virtualized device access for efficiency and scale. SG-IOV rethinks it for the container era, at socket granularity.

Bridge software flexibility and hardware speed by splitting control from data. SG-IOV keeps the flexible control logic in software (mediating signals) while pushing bulk data movement to the accelerator, so it gets both programmability and hardware performance. Offloading network processing to NIC hardware while preserving the flexible, high-level programming model in software is the same principle the work on turning eBPF and XDP programs into hardware designs for the NIC (eHDL) covered elsewhere on this site is built on, bridging a software network model to hardware execution. SG-IOV’s signal-versus-payload separation is its way of keeping the control plane soft and programmable while the data plane runs on the SmartNIC.

Following a socket through SG-IOV

Serving a container's socket over the SmartNIC

An illustration, drawn from the paper's abstract, of how SG-IOV virtualizes a socket. Internal mechanism details are the paper's.

Step 1 of 5

A container opens a socket

One of the thousands of containers on the host opens a network socket. SG-IOV provisions a socket-level device for it, rather than requiring a whole SR-IOV virtual function that would not scale.

Fine granularity is what lets the design serve dense container fleets.

Why it works

  • Socket granularity matches how containers use the network. A whole virtual NIC is the wrong unit for a container → but provisioning a device per socket → so virtualization fits the fine-grained, application-level container workload.
  • Splitting control from data puts each task where it belongs. One hardware device doing both logic and data movement does neither well at scale → but software mediating signals while the accelerator moves payload → so control stays flexible and data stays fast.
  • Software-mediated signals let many devices share the hardware. Giving each socket its own full hardware channel would not scale → but multiplexing many socket devices because software handles the light control work → so the design scales beyond 4,000 devices.
  • Intermediate queuing enforces isolation without rigid channels. Fine-grained devices strain hardware isolation → but routing payload through software-governed intermediate queues → so tenants stay isolated without dedicated hardware per device.
  • Offloading the bulk work reclaims host CPU. Software container networking taxes the host processors → but moving payload movement and processing onto the SmartNIC → so up to 1.9 cores per 10 Gbps are freed, with more bandwidth and lower latency.

What it costs (trade-offs and scope)

  • It requires a programmable SmartNIC. SG-IOV’s gains depend on hardware like the NVIDIA BlueField-3 with its own processors and accelerators; it is a hardware-software co-design, not a change that runs on a plain NIC.
  • The control plane still runs software. Software mediates the signals, so some control-plane CPU work remains on or near the host; the savings come from offloading the payload data plane, not from eliminating all software.
  • Size-varying, socket-granular processing adds complexity. Supporting many fine-grained devices and variable-size messages requires the resource multiplexing, adaptive handling, and intermediate queuing machinery, which is non-trivial to build correctly and efficiently.
  • It targets container networking. The mechanism is designed for dense, application-layer container networks; other I/O-virtualization use cases with different needs may not benefit the same way.
  • Reported figures are on a specific setup and baseline. The scaling beyond 4,000 devices, up-to-1.9-cores-per-10-Gbps savings, 53 percent higher bandwidth, and up-to-48-percent lower latency are measured on BlueField-3 against Cilium in the paper’s configuration; results depend on the workload, traffic, and comparison.

The comparison

I/O virtualization for container networks

PropertySoftware (Cilium)SR-IOV virtual functionsSG-IOV
Where networking runs
Device scalability
Abstraction
Granularity
Efficiency
A comparison of ways to virtualize I/O for container networks. Software networking (Cilium) is flexible but taxes the host CPU; SR-IOV offloads to hardware but is too few, too low-level (packets), and too coarse for containers. SG-IOV virtualizes at socket granularity over a message-stream abstraction, with software steering signals while the accelerator moves payload — scaling beyond 4,000 devices and saving up to 1.9 cores per 10 Gbps with 53 percent higher bandwidth and up to 48 percent lower latency on BlueField-3. Exact figures should be read from the paper.Underlined values explain themselves when clicked.

Check yourself

Check your understanding

  1. 1. Why does the standard hardware I/O-virtualization mechanism, SR-IOV, not fit container networking?

  2. 2. What is SG-IOV's central design principle, and why does it help?

  3. 3. How does SG-IOV match container networking better than SR-IOV?

  4. 4. What does SG-IOV achieve, and what are the limits of the approach?

Sources

The paper is “SG-IOV: Socket-Granular I/O Virtualization for SmartNIC-Based Container Networks” by Chenxingyu Zhao, Hongtao Zhang, Jaehong Min, Shengkai Lin, Wei Zhang, Kaiyuan Zhang, Ming Liu, and Arvind Krishnamurthy (University of Washington and University of Wisconsin-Madison), published at ASPLOS 2026, DOI 10.1145/3779212.3790218.

This explainer is written from the paper’s abstract and public metadata; the full text was not available at the time of writing, so the page is marked a draft. As reported there, SG-IOV is a new I/O-virtualization mechanism that offloads container networks onto SmartNICs by provisioning socket-level devices over a message-stream abstraction, addressing SR-IOV’s misalignment with containers (scalability, abstraction level, and granularity). Its core principle is that software mediates signals while accelerators touch the payload, enabling resource multiplexing for scalability, adaptive handling of size-varying tasks, and intermediate queuing to enforce virtualization. Prototyped on NVIDIA BlueField-3, it reportedly scales beyond 4,000 devices, saves up to 1.9 cores per 10 Gbps versus Cilium, achieves 53 percent higher bandwidth, and reduces latency by up to 48 percent. Background on I/O virtualization, containers, SR-IOV, and SmartNICs is standard context. The specific numbers are the paper’s own; the mechanism details and full evaluation should be confirmed in the paper.

Related papers on Operating Systems & Virtualization

See all 170 →