RDMA Virtual Address Space Offload via SmartNIC
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current RDMA technologies for virtual machines require physically routable address spaces, leading to increased CPU usage and latency in data centers, as they necessitate network traffic to flow through network virtual functions, which can hinder high-throughput and low-latency networking.
Innovation Solution
Implementing smartNICs with FPGAs that offload network tasks, enabling RDMA between virtual machines by encapsulating virtual packets into physically routable packets, thereby bypassing synthetic NICs and allowing direct memory access without CPU intervention, using Generic Flow Tables and virtual filtering platforms to manage packet processing and routing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If RDMA traffic flows through network virtual functions in virtualized environments, then virtual machines can communicate over virtual networks, but CPU usage increases and latency increases
Solution Approach 1:
The patent extracts the RDMA packet processing function from the software-based network virtual function path and implements it directly in the hardware smartNIC. This allows RDMA packets to bypass the synthetic NIC and virtual switch software stack, eliminating CPU intervention and reducing latency while maintaining virtual network communication capability.
Solution Approach 2:
The patent introduces an intermediary mechanism (the smartNIC with virtualization-aware RDMA implementation) that enables direct hardware-level packet routing between virtual machines while maintaining the abstraction of virtual networks. This intermediary allows packets to flow directly through hardware without being processed by the virtual switch software, resolving the contradiction between virtual network adaptability and low latency.
2Adaptability or versatility
If RDMA traffic flows through network virtual functions, then virtual machines can access virtual networks, but processing power is consumed from CPU cores
Solution Approach 1:
The patent extracts the RDMA packet handling function from the CPU-based network virtual function processing and relocates it to the smartNIC hardware. This extraction eliminates the need for CPU cores to process RDMA packets, freeing up processing power for virtual machine workloads while maintaining virtual network access capability.
Solution Approach 2:
The smartNIC implements self-service by autonomously handling RDMA packet routing and processing in hardware without requiring CPU intervention. The device uses virtualization-aware logic embedded in the smartNIC to directly route packets between virtual machines, enabling virtual network access while conserving CPU resources.
3Productivity
If physically routable address spaces are used for RDMA, then direct memory access can be implemented, but device complexity increases due to additional network interfaces
Solution Approach 1:
The patent implements multi-functionality in the smartNIC by enabling it to handle both traditional network traffic through virtual switches and direct RDMA traffic simultaneously. The smartNIC uses virtualization-aware logic to automatically route packets appropriately, providing high-speed direct memory access while maintaining compatibility with existing virtual network infrastructure without requiring additional physical network interfaces.
Data Source
AI summary
Techniques are disclosed for implementing direct memory access in a virtualized computing environment. A memory access policy of the virtualized computing environment is applied to a direct memory access connection request received from a first virtual machine via an exception path. The request is flagged to indicate that the request has been processed and the request is forwarded to a network interface device configured to execute offloaded network functions for one or more virtual machines. A memory access policy of the virtualized computing environment is applied to a direct memory access connection reply received from a second virtual machine on the exception path. The reply is flagged to indicate that the reply has been processed and the reply is forwarded to the network interface device. A direct memory access connection is established between first and second virtual machines in accordance with the request.


