How to ensure fair and safe sharing?
Existing network systems consider the fair sharing of a single type of resource (e.g., the total bandwidth of a NIC [1]}).
With sNIC, we treat each internal hardware resource separately when considering fair sharing, e.g., ingress/egress bandwidth, internal bandwidth of each shared NT, payload buffer space, and on-board memory, as doing so allows a higher degree of consolidation.
Our context is unique in that the packet processing system itself requires multi-dimensional resource sharing. We adopt Dominant Resource Fairness (DRF) [2]} to address this.
Instead of user-supplied, static per-resource demands as in traditional DRF systems, we monitor the actual load demands at run time and use them as the target in the DRF algorithm.
Furthermore, we propose to use ingress bandwidth throttling to control the allocation of other types of resources.
Finally, for safe sharing, we build a simple virtual memory system to isolate and protect accesses to on-board memory.
