Hypervisor Polling Task Scheduling for Scalable I/O

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
ImproveI/O latencyVSAvoidsystem throughput
Core Design Contradiction:
Measurement precisionVSProductivity

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.

Inventive Principle:
Principle #1Segmentation

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

Engineering Contradiction:
Improvehardware utilization rateVSAvoidscalability
Core Design Contradiction:
ProductivityVSAdaptability or versatility

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.

Inventive Principle:
Principle #15Dynamics

3Speed

If continuous polling is performed to ensure fast I/O response, then I/O operation speed is improved, but CPU power consumption increases

Engineering Contradiction:
ImproveI/O operation speedVSAvoidCPU power consumption
Core Design Contradiction:
SpeedVSUse of energy by moving object

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.

Inventive Principle:
Principle #19Periodic action

Data Source

PatentUS9836323B1Scalable hypervisor scheduling of polling tasks
Publication Date: 2017.12.05 RED HAT INC
  • US9836323B1 patent drawing
  • US9836323B1 patent drawing
  • US9836323B1 patent drawing

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.