Multiprocessor Network Application Processing Thread Isolation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing multi-processor systems face performance bottlenecks due to the division of data packet processing between network and application layers, leading to scheduling delays and resource locking issues, which hinder overall system throughput.

Innovation Solution

Assigning each processing device to process a single execution thread across multiple layers, eliminating the need for thread migration and resource locking by allocating dedicated memory resources per network context, allowing simultaneous execution of multiple threads without conflicts.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If data packet processing is divided between network layer and application layer with separate threads, then processing can be parallelized across multiple processors, but scheduling delays occur and system performance deteriorates due to thread migration overhead

Engineering Contradiction:
Improvedata packet throughputVSAvoidscheduling delay
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent merges network layer processing and application layer processing into a single execution thread. The network stack and application code both execute on the same processor core without thread migration, eliminating the scheduling delay caused by context switching between layers. This is achieved by having the network stack post work items to a work queue that the same processor can pick up and execute directly in application code.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent segments processing into independent work items that can be queued and executed asynchronously. Each network packet processing task is divided into discrete work items that are posted to work queues, allowing the network stack and application to operate independently without blocking each other, while still executing on the same processor core.

Inventive Principle:
Principle #1Segmentation

2Productivity

If multiple application threads execute in parallel on multi-processor system, then processing capacity increases, but resource locking is required which slows down system performance

Engineering Contradiction:
Improveprocessing capacityVSAvoidresource locking mechanism
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments shared resources into per-processor copies. Each processor maintains its own copy of critical data structures such as the connection table and work queues. This eliminates the need for locks because each processor operates on its own isolated data structures, removing the complexity of resource locking mechanisms while maintaining parallel processing capacity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements local quality by making data structures local to each processor rather than globally shared. Each processor has its own local work queue and accesses only locally-owned data structures, eliminating contention and the need for synchronization primitives. This localizes resource access to remove locking overhead.

Inventive Principle:
Principle #3Local quality

3Adaptability or versatility

If at least two processors are required to process a data packet from network layer to application layer, then processing can be distributed, but processor utilization efficiency decreases due to thread handoff requirements

Engineering Contradiction:
Improvedistributed processing capabilityVSAvoidprocessor utilization efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent merges network layer and application layer execution onto a single processor core. The same processor that receives network packets in the network stack also executes the application code that processes those packets, eliminating the requirement for thread handoff to a different processor. This maintains distributed processing capability while improving processor utilization efficiency.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS8566833B1Combined network and application processing in a multiprocessing environment
Publication Date: 2013.10.22 NETAPP INC
  • US8566833B1 patent drawing
  • US8566833B1 patent drawing
  • US8566833B1 patent drawing

AI summary

According to a novel mechanism, each processing device (e.g., a central processing unit (CPU) in a multi-processor system) is assigned to process a single execution thread for a task and the execution thread is processed across various layers of the multi-processor system (such as a network layer and application layer) without being divided into separate threads. Advantageously, upon initialization of the multi-processor system, network context data structures are created equal to the number of processing devices in the system. As used herein, a network context is a logical entity to which zero or more connections are bound during their lifetime. Rather than sharing data structures among execution threads, a multi-processor system allocates memory resources per each network context during initialization of the system. As a result, an execution thread processing a task queued to a particular network context accesses memory resources allocated for that network context only.