Network Device Work Queue Cyclic Execution Database
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing network device work queues manage packet processing using consecutive and cyclic writing and reading, leading to delays and wasted processing capacity when jobs take varying times to complete.
Innovation Solution
A system where work queue entries are written and read in a consecutive and cyclic manner, with the network device dequeuing and executing entries independently of completion, using an execution database and generating notices for completion and consumption.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If work queue entries are read and executed in consecutive and cyclic order, then software processing simplicity is maintained, but processing delays occur when jobs take varying times to complete
Solution Approach 1:
The patent segments the work queue management into two independent components: the work queue itself (for software simplicity) and the execution database (for efficient job tracking). This allows the work queue to maintain consecutive/cyclic ordering while the execution database handles out-of-order completion tracking, resolving the contradiction between simplicity and delay.
Solution Approach 2:
The execution database acts as an intermediary between the work queue and the job execution process. It decouples the rigid consecutive/cyclic queue structure from the flexible actual execution timing, allowing jobs to be executed and completed in any order while maintaining software processing simplicity at the queue level.
2Stability of the object's composition
If work queue entries are waited for completion before dequeuing, then execution order is maintained, but processing capacity is wasted
Solution Approach 1:
The system performs preliminary dequeuing of work queue entries immediately after reading them, without waiting for execution completion. The execution database then tracks these entries and notifies when completed, allowing the processing device to continuously fetch new work while previous jobs execute, thus maximizing processing capacity while maintaining order through the execution database.
3Productivity
If work queue entries are dequeued immediately upon reading, then processing capacity is optimized, but tracking execution becomes complex
Solution Approach 1:
The patent extracts the execution tracking function from the work queue itself and places it in a separate execution database. This allows immediate dequeuing for productivity while the dedicated execution database handles the complexity of tracking which entries are in progress, completed, or need notification, separating concerns and managing complexity effectively.
4Stability of the object's composition
If the system waits for work queue entry completion before adding new entries, then execution order is preserved, but processing efficiency decreases
Solution Approach 1:
The system enables continuous useful action by allowing the processing device to continuously read and dequeue new work queue entries without waiting for previous entries to complete. The execution database maintains order information and notifies when completed, ensuring both continuous processing (efficiency) and proper order tracking (stability).
Data Source
AI summary
In one embodiment, a system includes a memory to store a work queue including work queue entry slots, a processing device to write work queue entries to the work queue in a consecutive and cyclic manner, and a network device including a network interface to share packet over a network, and packet processing circuitry to read the work queue entries from the work queue in a consecutive and cyclic manner, the work queue entries indicating work to be performed associated with the packets, dequeue respective ones of the work queue entries read from the work queue responsively to reading the respective work queue entries from the work queue, add the work queue entries to an execution database used to track execution of the work queue entries, and execute the work queue entries in the execution database.


