Virtual NIC RSS Offload via Physical NIC Hash Embedding
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In virtualized environments, the CPU overhead associated with receive side scaling (RSS) processing by the hypervisor for virtual network interface controllers (VNICs) is significant, as the hypervisor traditionally computes hash values for distributing network traffic across CPUs.
Innovation Solution
The method involves the physical network interface controller (PNIC) computing and writing hash values to packets, which are then used by the VNIC to forward packets to corresponding queues, reducing the need for the hypervisor to compute hash values and allowing for direct mapping or separate locking of VNIC queues for efficient processing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If the hypervisor computes RSS hash values for VNICs, then network traffic can be distributed across CPUs, but CPU overhead increases significantly
Solution Approach 1:
The patent extracts the RSS hash computation function from the hypervisor and transfers it to the PNIC. The PNIC now computes hash values locally and writes them to packets, eliminating the need for the hypervisor to perform this CPU-intensive operation. This extraction directly reduces hypervisor CPU overhead while maintaining the network traffic distribution functionality.
Solution Approach 2:
The patent introduces packets as an intermediary carrier for RSS hash values. Instead of the hypervisor computing hashes and managing queue mappings directly, the PNIC computes hashes, writes them to packets, and the VNIC reads these pre-computed hash values from packets to determine destination queues. This intermediary approach shifts the computational burden away from the hypervisor.
2Ease of operation
If the hypervisor manages RSS queue mapping for VNICs, then packet routing is controlled, but device complexity increases
Solution Approach 1:
The patent extracts the queue mapping management function from the hypervisor and transfers it to the PNIC. The PNIC maintains its own mapping between PNIC queues and VNIC queues, eliminating the need for the hypervisor to manage this complex mapping relationship. This extraction simplifies hypervisor operations while maintaining routing control capability.
Solution Approach 2:
The PNIC performs self-service by maintaining and managing its own queue mapping table locally. Instead of relying on the hypervisor to provide queue mapping information, the PNIC independently manages the mapping between its queues and the VNIC queues, reducing hypervisor complexity and improving system autonomy.
3Adaptability or versatility
If the number of PNIC queues differs from the number of VNIC queues, then queue mapping is required, but processing efficiency decreases
Solution Approach 1:
The patent implements dynamic queue mapping where the PNIC can adaptively map its queues to VNIC queues based on runtime conditions. The mapping is not fixed but can be dynamically adjusted to optimize packet processing efficiency while accommodating different queue numbers between PNIC and VNIC, maintaining both flexibility and performance.
Data Source
AI summary
Techniques disclosed herein provide an approach for using receive side scaling (RSS) offloads from a physical network interface controller (PNIC) to improve the performance of a virtual network interface controller (VNIC). In one embodiment, the PNIC is configured to write hash values it computes for RSS purposes to packets themselves. The VNIC then reads the hash values from the packets and places the packets into VNIC RSS queues, which are processed by respective CPUs, based on the hash values. CPU overhead is thereby reduced, as RSS processing by the VNIC no longer requires computing hash values. In another embodiment in which the number of PNIC RSS queues and VNIC RSS queues are identical, the VNIC may map packets from PNIC RSS queues to VNIC RSS queues using the PNIC RSS queue ID numbers, which also does not require the computing RSS hash values.


