Interrupt Distribution Across Multiple Processors for Single Flow

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing packet distribution techniques are unable to distribute packets of a single flow to multiple processors, leading to processor overburden and increased latency, as they restrict processing to a single processor for all packets of a flow, limiting processor parallelism and causing bottlenecks.

Innovation Solution

Implementing a mechanism that interrupts multiple processors for processing packets of a single flow by using a thresholding mechanism to switch interrupt requests between different queues associated with different processors, thereby distributing the processing load across multiple processors.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If all packets of a single flow are distributed to the same processor using RSS/RFS technologies, then processing consistency is maintained, but processor parallelism is limited and bottlenecks occur

Engineering Contradiction:
Improveprocessor parallelismVSAvoidprocessing consistency
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments the processing of packets within a single flow across multiple processors by maintaining multiple queues (first queue and second queue) and selectively distributing packets from the same flow to different queues based on flow identification, thereby enabling parallel processing while maintaining flow coherence

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent dynamically switches between different queues for packets of the same flow based on identification of the flow and threshold-based decision-making, allowing the system to adaptively distribute processing load across multiple processors while maintaining consistency within each flow

Inventive Principle:
Principle #15Dynamics

2Productivity

If the same processor processes all packets of a single flow, then processing is simplified, but the processor becomes overburdened and latency increases

Engineering Contradiction:
ImprovethroughputVSAvoidprocessing latency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent divides the processing workload by creating multiple queues and distributing packets of the same flow across these queues, which are then processed by different processors in parallel, increasing throughput and reducing latency

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent replaces the traditional single-processor sequential processing mechanism with a multi-processor parallel processing system that uses threshold-based queue selection to distribute packets, thereby substituting mechanical sequential processing with parallel processing architecture

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

3Productivity

If multiple processors are used to process packets of a single flow, then processor parallelism is improved, but system complexity increases

Engineering Contradiction:
Improveprocessor parallelismVSAvoidqueue management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent manages complexity by changing the parameter of queue selection based on flow identification and threshold values, using configurable thresholds to control packet distribution across queues without requiring complex routing logic

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10728167B2Interrupt distribution of a single flow across multiple processors
Publication Date: 2020.07.28 ORACLE INT CORP
  • US10728167B2 patent drawing
  • US10728167B2 patent drawing
  • US10728167B2 patent drawing

AI summary

Systems, methods, and other embodiments that interrupt multiple processors to process packets of a single flow are described. In one embodiment, a method includes maintaining a plurality of queues to hold interrupt requests created for packets received by a network device. Each queue is associated with a processor that will be interrupted by interrupt requests to process packets. The network device is configured to control how to queue interrupt requests created for a flow of packets. The network device is configured such that when a threshold number of interrupt requests created for the flow of packets have been inserted within a queue, subsequent interrupt requests created for subsequently received packets of the flow are inserted in a different queue. In this way, the network device is controlled to interrupt multiple processors for the flow of packets by queuing interrupt requests for the flow into different queues.