Application-Driven Shared Queue Polling for Network Latency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The existing computer systems face significant overhead and performance degradation due to the frequent interrupt requests generated by increasing data packet frequencies at networking devices, leading to increased latency in processing data packets intended for various applications.

Innovation Solution

Implementing application-driven polling of shared device queues, where applications request the operating system to poll for pending messages, allowing the disabling of device interrupts during polling, thereby reducing latency and improving processing efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If interrupt requests are used to notify the computer system of pending data packets, then data packet delivery is ensured, but system overhead increases and performance degrades

Engineering Contradiction:
Improvedata packet deliveryVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements periodic polling by applications to check for pending messages in device queues, replacing the continuous interrupt-driven model. Applications periodically query the device queue status at controlled intervals, which reduces the frequency of processor interruptions while ensuring messages are eventually detected and processed.

Inventive Principle:
Principle #19Periodic action

Solution Approach 2:

The patent extracts the message checking function from the interrupt handling mechanism and places it directly in applications. Instead of the processor being interrupted to check queues, applications autonomously poll for messages, removing the overhead of interrupt context switching and processor halts while maintaining reliable message delivery.

Inventive Principle:
Principle #2Taking out (Extraction)

2Productivity

If the frequency of data packets arriving at the networking device increases, then network throughput is improved, but interrupt overhead increases and degrades overall system performance

Engineering Contradiction:
Improvenetwork throughputVSAvoidinterrupt handling overhead
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent enables applications to self-service by directly polling for their own messages in device queues. Each application autonomously checks for pending messages without requiring processor intervention or interrupt handling, allowing the system to scale to higher data packet frequencies without proportionally increasing interrupt overhead.

Inventive Principle:
Principle #25Self-service

3Reliability

If the processor halts to handle interrupt requests, then pending data packets are processed, but processing latency increases

Engineering Contradiction:
Improveinterrupt handlingVSAvoidprocessing latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent implements preliminary action by having applications continuously or periodically check for messages before they become critical. Applications proactively poll device queues to detect pending messages early, allowing them to process data packets before interrupt latency would otherwise cause delays, thus reducing overall processing latency while maintaining reliable interrupt handling.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9354952B2Application-driven shared device queue polling
Publication Date: 2016.05.31 RED HAT ISRAEL
  • US9354952B2 patent drawing
  • US9354952B2 patent drawing
  • US9354952B2 patent drawing

AI summary

Methods and systems relate to receiving, at a system device, a first request from an operating system, the first request identifying shared queue and providing an instruction to the system device to enable polling of the identified shared queue, enabling, by a processing device, polling of the identified shared queue, wherein enabling polling comprises identifying a message in the identified shared queue and polling information related to the identified shared queue, and disabling, by the processing device, a device interrupt associated with the message in the identified shared queue.