Multiprocessor Network Application Processing Thread Isolation
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
Data Source
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.


