Hypervisor Polling Task Scheduling for Scalable I/O
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional hypervisor-based polling methods are not well-suited for resource over-commitment and scalability, as they can prevent other virtual machines from running until the current polling task is preempted, leading to inefficiencies in I/O operations.
Innovation Solution
Implementing an I/O worker task for each virtual machine and a callback dispatcher task that schedules and processes pending I/O requests, adding entries to a global or per-host CPU list, and invoking callback code to wake up I/O worker tasks when necessary, while quiescing CPUs to conserve power.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If a per-VM polling task is implemented to handle I/O requests, then I/O latency is reduced, but other virtual machines cannot run until the polling task is preempted, reducing system productivity
Solution Approach 1:
The system segments the polling mechanism by creating separate I/O worker tasks for each virtual machine. Each worker task independently polls for I/O requests on its assigned vCPU, eliminating the need for a single monopolizing polling task. This segmentation allows multiple VMs to perform I/O polling concurrently without blocking each other, thus maintaining low I/O latency while improving overall system productivity through parallel processing.
2Productivity
If resource over-commitment is implemented to improve hardware utilization, then consolidation efficiency increases, but conventional polling methods prevent other VMs from running, reducing scalability
Solution Approach 1:
The system implements dynamic scheduling where I/O worker tasks are created and destroyed based on the actual I/O activity of virtual machines. When a VM has pending I/O requests, a worker task is activated; when no requests are pending, the task is deactivated or destroyed. This dynamic approach allows the system to scale efficiently with resource over-commitment, as the polling infrastructure adapts to actual workload demands rather than maintaining fixed polling tasks for all VMs, thus improving both hardware utilization and scalability.
3Speed
If continuous polling is performed to ensure fast I/O response, then I/O operation speed is improved, but CPU power consumption increases
Solution Approach 1:
The system implements periodic polling through I/O worker tasks that are activated only when needed. Instead of continuous polling, worker tasks are created on-demand when I/O requests are detected, perform their polling function, and then terminate or transition to an idle state. This periodic action pattern maintains fast I/O response when required while significantly reducing CPU power consumption during periods of low I/O activity, as the polling infrastructure is dynamically created and destroyed rather than continuously running.
Data Source
AI summary
Systems and methods for hypervisor scheduling of polling tasks are disclosed. In one implementation, responsive to determining that no input/output (I/O) worker tasks associated with virtual machines are running on a processor of a host computer system running a plurality of virtual machines, callback dispatcher task may be invoked by the processor. The callback dispatcher task may identify an entry of a callback list, wherein the entry references an input/output (I/O) worker task associated with a virtual machine of the plurality of virtual machines. The callback dispatcher task may further invoke a callback code referenced by the entry of the callback list. Responsive to identifying a pending I/O request, the callback code may wake up the input/output (I/O) worker task associated with the entry of the callback list.


