Implicit Dynamic Receive Queue Steering for Virtualized Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing virtualized computer systems lack dynamic and efficient packet steering mechanisms, often relying on static approaches or adding overhead through device drivers.

Innovation Solution

Implementing a hypervisor with a packet steering engine that maintains a queue-steering table to dynamically associate incoming flows with receive queues, allowing for intelligent packet steering based on workload and using transmit queues to implicitly identify receive queues.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If static packet steering approaches are used, then device complexity is reduced, but productivity and performance deteriorate due to inability to dynamically adapt to workload changes

Engineering Contradiction:
Improvepacket steering efficiencyVSAvoidpacket steering mechanism complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system uses transmit queues to implicitly identify receive queues through a feedback mechanism. When a VM transmits a packet, the hypervisor extracts the flow identifier and uses it to determine the corresponding receive queue, eliminating the need for complex explicit mapping tables. The system serves itself by using outgoing traffic patterns to inform incoming traffic routing decisions

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The queue-steering table serves multiple functions: it stores flow-to-queue mappings for packet steering, and simultaneously uses transmit queue identifiers to implicitly identify receive queues. This multi-functionality reduces the need for separate data structures and complex steering logic, improving productivity without proportionally increasing device complexity

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Adaptability or versatility

If device drivers are added to enable dynamic packet steering, then adaptability improves, but device complexity and overhead increase

Engineering Contradiction:
Improvepacket steering adaptabilityVSAvoidsystem overhead
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent extracts the packet steering functionality from traditional device drivers and implements it directly in the hypervisor. By removing the need for complex device driver implementations and relying instead on the implicit identification mechanism through transmit queues, the system achieves high adaptability while reducing overall device complexity and overhead

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The queue-steering table acts as an intermediary data structure that enables dynamic packet steering without requiring complex device driver logic. It provides a simple lookup mechanism that maps flow identifiers to receive queues, achieving adaptability through a lightweight intermediate structure rather than through complex driver software

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If multiple receive queues are used for parallel execution, then productivity improves, but device complexity increases due to need for dynamic steering mechanisms

Engineering Contradiction:
Improveparallel execution capabilityVSAvoidqueue management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system enables parallel execution through multiple receive queues while reducing management complexity by using transmit queues to self-identify the appropriate receive queues. The implicit identification mechanism allows the system to automatically route packets to the correct queue without requiring complex steering logic, maintaining productivity while reducing the operational complexity of managing multiple queues

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10027604B2Implicit dynamic receive queue steering for unidirectional flows in virtualized systems
Publication Date: 2018.07.17 RED HAT ISRAEL
  • US10027604B2 patent drawing
  • US10027604B2 patent drawing
  • US10027604B2 patent drawing

AI summary

A system and method are disclosed for steering incoming packets to receive queues of virtual machines (VMs). In one embodiment, a hypervisor executed by a processing device receives an incoming packet for a VM, where the incoming packet identifies an incoming flow to the VM. The hypervisor determines that a data store has no entries for the incoming flow and indicates to the VM that the data store has no entries for the incoming flow. The hypervisor receives an outgoing packet from the VM identifying a first receive queue and obtains from the outgoing packet an incoming flow identifier that identifies the incoming flow The hypervisor stores in the data store an entry associating the incoming flow identifier with the first receive queue. The hypervisor receives a second incoming packet for the VM specifying the incoming flow identifier, and the second incoming packet is inserted into the first receive queue in view of the data store.