Adaptive Polling of Packet Queues in Compute Devices

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In compute devices that execute multiple virtual machines, dedicating cores to continually poll input queues leads to inefficiency as these cores are unavailable for workload execution, increasing the likelihood of packet loss due to queue overflow.

Innovation Solution

Implementing adaptive polling, where a core determines a safe time period to unpolled queues based on metadata and computational loads, allowing it to execute workload operations during that time without causing packet loss, thereby optimizing processing capacity.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a core is dedicated to continuously polling the input queue to prevent packet loss, then packet loss is reduced, but the core cannot perform workload operations, reducing overall processing capacity

Engineering Contradiction:
Improvepacket loss preventionVSAvoidprocessing capacity
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements adaptive polling where the dedicated core periodically checks the queue at variable intervals rather than continuously. The core determines safe unpolling time periods based on queue depth, packet arrival rates, and processing speeds, allowing it to switch between polling and workload execution modes dynamically. This periodic action with adaptive timing resolves the contradiction by maintaining reliability through regular checks while enabling productivity during safe intervals when continuous monitoring is unnecessary.

Inventive Principle:
Principle #19Periodic action

Solution Approach 2:

The system dynamically adjusts the polling frequency and duration based on real-time conditions such as queue depth, packet arrival rates, and processing speeds. The core transitions between states (polling vs. workload execution) based on dynamically calculated safe unpolling time periods. This dynamic adaptation allows the system to optimize between reliability and productivity according to current operational conditions rather than following a fixed polling schedule.

Inventive Principle:
Principle #15Dynamics

2Reliability

If multiple cores are dedicated to polling input queues for multiple virtual machines, then packet loss is minimized, but the number of cores available for workload execution decreases significantly

Engineering Contradiction:
Improvepacket loss preventionVSAvoidcore availability
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The dedicated core performs multiple functions: it polls the input queue to prevent packet loss and simultaneously executes workload operations during safe intervals. By making the core universal rather than specialized for a single function, the system reduces the total number of cores needed while maintaining both reliability and productivity. The core adapts its behavior based on conditions, serving as both a monitoring mechanism and a processing unit.

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

Solution Approach 2:

The patent merges the polling function and workload execution function into a single core's operation. Instead of having separate dedicated polling cores and workload cores, the system combines these roles, allowing one core to perform both queue monitoring and packet processing. This merging reduces core requirements and improves overall system efficiency while maintaining packet loss prevention through adaptive polling mechanisms.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentEP3771164B1Technologies for providing adaptive polling of packet queues
Publication Date: 2023.11.29 INTEL CORP
  • EP3771164B1 patent drawingFigure 1
  • EP3771164B1 patent drawingFigure 2
  • EP3771164B1 patent drawingFigure 3

AI summary

Technologies for providing adaptive polling of packet queues include a compute device. The compute device includes a network interface controller and a compute engine that includes a set of cores and a memory that includes a queue to store packets received by the network interface controller. The compute engine is configured to determine a predicted time period for the queue to receive packets without overflowing, execute, during the time period and with a core that is assigned to periodically poll the queue for packets, a workload, and poll, with the assigned core, the queue to remove the packets from the queue. Other embodiments are also described and claimed.