User Space Server Delay Control Device for Packet Transfer
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Both interrupt and polling models for packet transfer in server virtualization environments face delays due to software interrupt processing and CPU occupancy, respectively, leading to increased wait times and reduced performance.
Innovation Solution
A server delay control system that performs polling for packet transfer between an application and a physical NIC in the user space, utilizing a communication path with a first and second queue, and includes a packet dequeuer and enqueuer to manage packets without context switching, thereby reducing delay.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If interrupt model is used for packet transfer, then packet transfer can be triggered by hardware events, but software interrupt processing causes delays and increased wait times
Solution Approach 1:
The patent extracts the packet transfer processing from the kernel space interrupt model and moves it to user space. The server delay control device performs packet transfer processing in user space without involving kernel space interrupts, thereby eliminating the wait time associated with software interrupt processing while maintaining the ability to trigger packet transfers based on hardware events.
Solution Approach 2:
The patent introduces a server delay control device as an intermediary component between the application and the physical NIC. This intermediary handles packet transfer processing in user space, acting as a mediator that eliminates the need for kernel space interrupt processing while maintaining efficient packet transfer.
2Loss of time
If polling model is used for packet transfer, then immediate packet processing can be achieved, but CPU occupancy increases and performance decreases
Solution Approach 1:
The patent implements a hybrid approach where the server delay control device performs packet transfer processing periodically based on trigger events rather than continuous polling. This allows immediate packet processing when needed while avoiding the CPU overhead of continuous polling, thereby reducing packet transfer delay without sacrificing CPU efficiency.
Solution Approach 2:
The patent makes the packet transfer processing dynamic by using event-triggered mechanisms rather than static continuous polling. The processing is activated only when necessary, adapting to actual packet arrival patterns and reducing unnecessary CPU occupancy while maintaining low delay performance.
3Adaptability or versatility
If context switching is performed during packet processing, then different processing tasks can be handled, but processing delay increases
Solution Approach 1:
The patent segments the system into distinct components with clear boundaries: the server delay control device in user space handles packet transfer processing, while the application continues to run independently. This segmentation allows processing to occur in isolated contexts without requiring context switches between different tasks, maintaining processing flexibility while eliminating context switching delays.
4Loss of time
If application is modified to implement polling, then low-delay packet transfer can be achieved, but application complexity increases
Solution Approach 1:
The patent implements a self-service mechanism where the server delay control device automatically performs packet transfer processing in user space without requiring modifications to the application. The device monitors and handles packet transfers independently, reducing packet transfer delay while keeping the application simple and unchanged.
Data Source
AI summary
Provided is a server delay control system for performing, on a server including a Host OS, packet transfer between a physical NIC connected to the Host OS and an application deployed in a user space. A server delay control device configured to perform polling for packet transfer on behalf of the application is deployed in the user space. The server delay control device creates, between the application and the physical NIC, a communication path for communication via socket communication. The communication path includes a first queue and a second queue. The server delay control device includes: a packet dequeuer configured to poll whether a packet has been enqueued into the first queue and to dequeue the enqueued packet from the first queue; and a packet enqueuer configured to enqueue the dequeued packet into the second queue in the same context as the polling and dequeuing without causing a context switch.


