Protocol Offload in Paravirtualized Systems via Front-End Driver Buffer Preposting

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In paravirtualized systems, the overhead introduced by the hypervisor layer limits the efficiency of server resource utilization and restricts advanced network features, such as TCP offload functions and RDMA, due to the limitations of virtual NICs, which cannot efficiently manage data transfer and provide advanced networking functionalities across multiple guest operating systems.

Innovation Solution

A method and system for protocol offload in paravirtualized systems that involves preposting application buffers to a front-end driver rather than the NIC, allowing the NIC to directly place data packets into guest operating system buffers, reducing the need for additional data copying and minimizing latency, while maintaining the interface between the operating system and front-end driver unchanged.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a virtual NIC is used to enable multiple guest operating systems to access network resources, then server resource utilization is improved, but advanced network features such as TCP offload functions and RDMA are lost

Engineering Contradiction:
Improveserver resource utilizationVSAvoidadvanced network features
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent introduces a front-end driver as an intermediary layer between the guest operating system and the physical NIC. This driver enables the virtual NIC to access advanced NIC features while maintaining compatibility with the guest OS, effectively mediating between the virtualization requirements and the hardware capabilities.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent segments the network driver functionality into a front-end driver (in the guest OS) and a back-end driver (in the host OS), allowing each to handle specific tasks. This segmentation enables the virtual NIC to offload TCP processing to the physical NIC hardware while maintaining the abstraction layer needed for multiple guest OSes.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If data is transferred through the hypervisor layer in virtualized systems, then multiple guest operating systems can share network resources, but overhead and latency increase

Engineering Contradiction:
Improvemulti-GOS supportVSAvoiddata transfer latency
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent implements pre-posting of application buffers to the front-end driver before data arrival. This preliminary action allows the system to prepare receive buffers in advance, eliminating the need for hypervisor-mediated buffer allocation during data transfer and reducing latency.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent extracts the TCP offload functionality from the hypervisor layer and places it directly in the front-end driver. This extraction allows TCP processing to occur at the guest OS level without requiring hypervisor intervention, significantly reducing the overhead associated with context switching and memory copying.

Inventive Principle:
Principle #2Taking out (Extraction)

3Reliability

If TCP processing is performed by the CPU, then protocol compatibility is maintained, but network throughput is limited

Engineering Contradiction:
Improveprotocol compatibilityVSAvoidnetwork throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent replaces the software-based TCP processing (mechanical system) with hardware-based TCP offload capabilities built into the physical NIC. This substitution maintains protocol compatibility through hardware implementation while dramatically improving network throughput by offloading processing from the CPU.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

4Productivity

If application buffers are posted directly to the NIC, then data transfer efficiency is improved, but interface compatibility with the operating system is compromised

Engineering Contradiction:
Improvedata transfer efficiencyVSAvoiddriver interface compatibility
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The front-end driver serves as an intermediary that maintains the standard operating system driver interface while enabling efficient buffer management. It translates standard OS buffer posting operations into optimized NIC buffer postings, preserving compatibility while improving efficiency.

Inventive Principle:
Principle #24Intermediary (Mediator)

Applied Scientific Principles

This section explains which scientific principles are used to turn an abstract innovation direction into a practical engineering solution.

Function Achieved in This Case

This approach enhances network throughput by reducing latency and overhead, enabling efficient data transfer and supporting advanced features like TCP/IP offload and RDMA without altering the existing driver interfaces, thereby optimizing resource utilization in multi-guest operating system environments.

Implementation Method 1

The NIC may be enabled to place the received offloaded data packets into a received data buffer corresponding to a particular guest operating system (GOS)

Methodology Applied
Scientific EffectDirect memory access:

Data Source

PatentUS8225332B2Method and system for protocol offload in paravirtualized systems
Publication Date: 2012.07.17 AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LTD
  • US8225332B2 patent drawing
  • US8225332B2 patent drawing
  • US8225332B2 patent drawing

AI summary

Certain aspects of a method and system for protocol offload in paravirtualized systems may be disclosed. Exemplary aspects of the method may include preposting of application buffers to a front-end driver rather than to a NIC in a paravirtualized system. The NIC may be enabled to place the received offloaded data packets into a received data buffer corresponding to a particular GOS. A back-end driver may be enabled to acknowledge the placed offloaded data packets. The back-end driver may be enabled to forward the received data buffer corresponding to the particular GOS to the front-end driver. The front-end driver may be enabled to copy offloaded data packets from a received data buffer corresponding to a particular guest operating system (GOS) to the preposted application buffers.