Thread Key DMA Pool for Packet Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional network and storage systems in cloud computing architectures face performance and administrative bottlenecks, particularly in managing packet processing and buffer utilization in high-performance networking devices with limited CPU capability and memory.

Innovation Solution

A system that employs a thread scheduling engine to assign thread keys for software threads and utilizes a pool of direct memory access (DMA) resources for efficient packet processing, allowing multiple threads to access DMA resources without locking and optimizing buffer utilization through dynamic allocation and linked lists or linear arrays.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional network and storage systems are used in cloud computing architectures, then system stability is maintained, but performance bottlenecks and administrative overhead increase

Engineering Contradiction:
Improvepacket processing throughputVSAvoidadministrative overhead
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system segments packet processing into multiple independent software threads, each capable of processing packets concurrently. This segmentation allows the system to achieve high throughput by distributing processing across multiple threads while maintaining manageable complexity through modular design

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements a universal DMA resource pool that can be accessed by multiple software threads for packet processing. This multi-functional resource pool eliminates the need for separate DMA resources for each thread, reducing administrative overhead while maintaining high processing capability

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

2Productivity

If multiple software threads access DMA resources concurrently, then packet processing throughput increases, but resource contention and locking overhead increase

Engineering Contradiction:
Improvepacket processing throughputVSAvoidlocking overhead
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system implements a self-service mechanism where software threads can directly access and utilize DMA resources from the shared pool without requiring external coordination or locking. Each thread independently manages its own access to DMA resources, eliminating the time loss associated with traditional locking mechanisms

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent introduces an intermediary thread key mechanism that mediates access to the shared DMA resource pool. This intermediary allows multiple threads to access resources concurrently without direct contention, as the thread key serves as an indirect access path that eliminates the need for mutex locks or semaphores

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If a thread key is assigned to each software thread for DMA resource access, then concurrent access without locking is enabled, but memory footprint increases

Engineering Contradiction:
Improveconcurrent processing capabilityVSAvoidmemory footprint
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The thread key structure is designed as a universal, compact identifier that can be reused across multiple DMA resource accesses. This single thread key serves multiple purposes: identifying the software thread, enabling direct access to the DMA resource pool, and facilitating concurrent operations without requiring separate data structures for each thread, thus minimizing memory footprint

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

Solution Approach 2:

Instead of allocating separate, large data structures for each software thread, the system uses a compact thread key that acts as a lightweight reference or copy identifier. This approach allows multiple threads to be represented with minimal memory overhead while still enabling full concurrent access capability to the shared DMA resources

Inventive Principle:
Principle #26Copying

Data Source

PatentUS9489327B2System and method for supporting an efficient packet processing model in a network environment
Publication Date: 2016.11.08 ORACLE INT CORP
  • US9489327B2 patent drawing
  • US9489327B2 patent drawing
  • US9489327B2 patent drawing

AI summary

A system and method can support efficient packet processing in a network environment. The system can comprise a thread scheduling engine that operates to assign a thread key to each software thread in a plurality of software threads. Furthermore, the system can comprise a pool of direct memory access (DMA) resources that can be used to process packets in the network environment. Additionally, each said software thread operates to request access to a DMA resource in the pool of DMA resources by presenting an assigned thread key, and a single software thread is allowed to access multiple DMA resources using the same thread key.