Kernel-Assisted Device Polling Framework for High-Performance Computing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing systems face challenges in coordinating kernel-based processing of device events with user-space devices, as they lack a mechanism to handle both kernel-space and user-space devices efficiently, leading to increased CPU usage and latency.
Innovation Solution
A common framework for kernel-assisted device polling is introduced, which casts events from user-space devices into a kernel-based event routing facility, allowing for efficient handling of both kernel-space and user-space device events using a kernel-based polling module that reduces CPU cycles and improves latency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If user-space devices are handled without kernel-based I/O services to eliminate context switching, then throughput is greatly improved, but access to kernel services for processing device events is lost and coordination with kernel-space device events becomes difficult
Solution Approach 1:
The patent introduces a kernel-based polling module as an intermediary that receives device events from both user-space devices (via cast events from user-space event routing facility) and kernel-space devices (via kernel-space event routing facility), then coordinates their processing. This mediator enables user-space devices to benefit from kernel service coordination without requiring direct kernel access, resolving the contradiction between throughput improvement and kernel service accessibility.
Solution Approach 2:
The kernel-based polling module is designed to handle multiple types of device events universally - both events from user-space devices and events from kernel-space devices - through a single unified interface. This multi-functional approach allows the system to maintain kernel service coordination capabilities while supporting diverse device types, eliminating the need for separate handling paths that would compromise throughput.
2Reliability
If a dedicated CPU core is assigned to polling activities to ensure responsive device event handling, then device event processing reliability is improved, but CPU core usage reaches 100% reducing overall system performance
Solution Approach 1:
The kernel-based polling module implements periodic polling of device events rather than continuous monitoring, where the polling interval can be dynamically adjusted based on system conditions and device characteristics. This periodic approach maintains reliable device event detection while allowing the CPU core to be released for other tasks between polling intervals, preventing 100% CPU utilization and preserving overall system performance.
Solution Approach 2:
The polling mechanism employs dynamic polling intervals that adapt to system conditions - using shorter intervals when device activity is high to maintain reliability, and longer intervals when activity is low to reduce CPU usage. This dynamic adjustment allows the system to maintain responsive device event handling without permanently dedicating the CPU core at full capacity, thereby balancing reliability with overall system productivity.
Data Source
AI summary
This disclosure relates to high-performance computing, and more particularly to techniques for kernel-assisted device polling of user-space devices. A common kernel-based polling mechanism is provided for concurrently handling both kernel-based polling for kernel-space devices such as network interfaces (e.g., network NICs) and kernel-based polling for user-space devices such as remote direct memory access devices (e.g., RDMA NICs). Embodiments perform kernel-based polling on a first device that has a corresponding device driver in an operating system kernel. Using the same polling mechanism, the kernel-based polling is performed on a second device, the second device being a user-space device wherein the kernel-based polling on the second device is configured by creating a second device file descriptor that is not associated with a corresponding device driver in the operating system kernel. The kernel-based polling mechanism implements a single polling schedule that is applied to cover both kernel-space device events and user-space device events.


