Dynamic Queue Pair Reconfiguration for Virtualized CPU Scaling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data processing systems face challenges in dynamically reconfiguring queue pairs in response to changes in the number of CPUs without interrupting performance or service, particularly in virtualized environments where CPU numbers can vary dynamically.

Innovation Solution

A device driver dynamically allocates and reconfigures queue pairs by monitoring CPU changes, allocating memory for new queue pairs when CPUs are added and removing them when CPUs are removed, and programming the receive side scaling mechanism in the network adapter to enable or disable processing engines and tuple hashing accordingly.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If the number of queue pairs is fixed, then the system structure is simple and stable, but the system cannot adapt to dynamic CPU reconfiguration in virtualized environments

Engineering Contradiction:
Improveadaptability to dynamic CPU reconfigurationVSAvoidqueue pair reconfiguration complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements dynamic reconfiguration of queue pairs by allowing the device driver to allocate, deallocate, and reconfigure queue pairs in response to changing CPU numbers. The receive side scaling mechanism is programmed to dynamically insert or remove processing engines, enabling the system to adapt its structure to match the current CPU configuration without requiring a system restart or manual intervention.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The device driver continuously monitors the number of CPUs in the system and uses this feedback information to automatically adjust the queue pair configuration. When CPU numbers change, the driver detects this change and triggers appropriate allocation or deallocation of queue pairs, ensuring the network processing capacity always matches the available processing resources.

Inventive Principle:
Principle #23Feedback

2Adaptability or versatility

If queue pairs are dynamically reconfigured, then the system adapts to CPU changes, but performance interruption may occur during reconfiguration

Engineering Contradiction:
Improvedynamic adaptation to CPU changesVSAvoidservice continuity during reconfiguration
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The device driver prepares for potential reconfiguration by maintaining a pool of available queue pair descriptors and pre-configuring the receive side scaling mechanism. When CPU changes are detected, the driver can quickly allocate or deallocate queue pairs from this pre-prepared state, minimizing the time window during which service interruption might occur.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent ensures continuous network processing by maintaining active queue pairs and their associated processing engines throughout the reconfiguration process. The receive side scaling mechanism is designed to seamlessly insert or remove processing engines without dropping packets or interrupting ongoing data transmission, thus preserving the continuity of useful action during dynamic adaptation.

Inventive Principle:
Principle #20Continuity of useful action

3Productivity

If more queue pairs are allocated, then the system can handle more CPUs and higher processing capacity, but memory consumption increases

Engineering Contradiction:
Improveprocessing capacityVSAvoidmemory consumption
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The device driver allocates queue pairs based on the actual number of CPUs detected in the system rather than provisioning for maximum possible capacity. The receive side scaling mechanism dynamically adjusts the number of active processing engines to match the current CPU count, ensuring that memory resources are allocated proportionally to actual processing needs rather than being over-provisioned for hypothetical future expansions.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS9811346B2Dynamic reconfiguration of queue pairs
Publication Date: 2017.11.07 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US9811346B2 patent drawing
  • US9811346B2 patent drawing
  • US9811346B2 patent drawing

AI summary

Dynamic reconfiguration of queue pairs in a data processing system is provided. A device driver determines whether a dynamic CPU reconfiguration has added one or more CPUs to the data processing system, wherein the data processing system comprises a number of CPUs and a number of queue pairs. Responsive to the dynamic CPU configuration adding one or more CPUs, the device driver allocates a portion of a memory corresponding to a queue pair, wherein each queue pair comprises a receive queue and a transmit queue, programs a receive side scaling mechanism in a network adapter to allow for dynamic insertion of a processing engine associated with the queue pair, and enables transmit tuple hashing to the queue pair.