RX Queue Status Polling for Low-Latency Packet Handling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current packet handling systems in communication networks inefficiently utilize multiple queues per core, leading to wasted resources and increased latency due to iterative polling of all queues, regardless of traffic priority or availability.
Innovation Solution
Implementing a method and hardware enhancements to enable selective and priority-based polling of multiple receive (RX) queues by using UMONITOR instructions and a per-core register to track queue statuses, allowing efficient use of all available RX queues.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If iterative polling of all queues is used, then all queues can be serviced, but resource wastage and latency increase
Solution Approach 1:
The patent applies preliminary action by having the packet handling unit proactively provide status indications of RX queues to the processing unit before polling occurs. This allows the processing unit to pre-know which queues have packets waiting, eliminating the need to poll empty queues and thus reducing resource wastage while ensuring all queues with packets are serviced.
Solution Approach 2:
The patent uses a per-core register to store a copy of the RX queue status information. Instead of directly querying the packet handling unit during polling, the processing unit reads from this local register copy, which significantly reduces the polling overhead and resource consumption while maintaining accurate queue status information.
2Reliability
If iterative polling of all queues is used, then all queues can be serviced, but latency increases
Solution Approach 1:
The packet handling unit proactively updates the per-core register with queue status information before the processing unit needs to poll. This preliminary action ensures that when the processing unit checks the register, it immediately gets current status without needing to perform iterative polling of all queues, thus reducing latency while maintaining complete queue servicing.
Solution Approach 2:
The patent extracts the queue status information from the packet handling unit and places it in a local per-core register. This extraction allows the processing unit to obtain status information locally without the overhead of iterative polling, reducing latency while ensuring all queues are properly serviced.
3Productivity
If multiple queues per core are utilized, then throughput increases, but complexity of queue management increases
Solution Approach 1:
The per-core register serves multiple functions: it stores queue status information, acts as a polling optimization mechanism, and provides a unified interface for the processing unit to monitor multiple RX queues. This multi-functionality reduces the complexity of managing multiple queues per core while maintaining high throughput.
Solution Approach 2:
By creating a local copy of queue status in the per-core register, the patent simplifies the interface between the packet handling unit and processing unit. The processing unit interacts with a simple register rather than complex queue management logic, reducing management complexity while enabling efficient utilization of multiple queues for high throughput.
Data Source
AI summary
Embodiments herein disclose for example a method performed by an arrangement (13) for handling packets in a communication network, wherein the arrangement (13) comprises a packet handling unit (10) comprising two or more RX queues and a processing unit (12). The arrangement (13) provides from the packet handling unit (10), an indication to the processing unit (12), wherein the indication indicates a status of a RX queue out of the two or more RX queues; and selects at the processing unit (12) at least one RX queue out of the two or more RX queues to poll one or more packets from based on the provided indication.


