Doorbell Pages for Virtual Machine Queue Monitoring

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Virtual machine systems face inefficiencies in monitoring and processing queues due to resource-intensive polling methods, which can lead to delayed request detection and increased resource usage, especially when dealing with multiple virtual machines and thousands of doorbell pages.

Innovation Solution

Implementing a system where a hypervisor uses doorbell pages to monitor queues across multiple virtual machines, providing a bit vector to processors to quickly identify queues needing service, and allowing asynchronous processing of requests, while also enabling efficient migration of virtual machines by transferring only dirty bytes during migration.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If polling methods are used to monitor queues for virtual machines, then queue status can be detected, but resource usage increases and request detection is delayed

Engineering Contradiction:
Improvequeue status detectionVSAvoidresource usage
Core Design Contradiction:
Measurement precisionVSUse of energy by moving object

Solution Approach 1:

The doorbell page mechanism allows virtual machines to self-notify the hypervisor when they need service. Instead of the hypervisor continuously polling virtual machine queues, the virtual machine writes to its doorbell page to signal when new requests are enqueued, transforming the monitoring system into a self-service model that eliminates wasted polling cycles and reduces resource consumption.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The doorbell page creates a feedback loop where virtual machines provide active notification to the hypervisor when queue status changes. The hypervisor monitors doorbell pages for write operations, and when detected, triggers appropriate processing. This feedback mechanism ensures timely detection of queue changes without requiring continuous active polling, optimizing resource usage while maintaining accurate queue status monitoring.

Inventive Principle:
Principle #23Feedback

2Measurement precision

If polling methods are used to monitor queues for virtual machines, then queue status can be detected, but request detection is delayed

Engineering Contradiction:
Improvequeue status detectionVSAvoidrequest detection delay
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The system transitions from continuous periodic polling to event-triggered action. The doorbell page mechanism allows the hypervisor to be notified immediately when a virtual machine needs service, eliminating the time delay inherent in periodic polling intervals. The hypervisor checks doorbell pages for write operations and processes requests only when necessary, achieving timely detection without the overhead of continuous periodic monitoring.

Inventive Principle:
Principle #19Periodic action

Solution Approach 2:

Virtual machines actively signal when they need service by writing to their doorbell pages, eliminating the delay caused by passive polling. This self-service approach ensures that request detection occurs immediately when relevant events happen, rather than waiting for the next polling cycle, thereby reducing request detection delay while maintaining accurate queue status monitoring.

Inventive Principle:
Principle #25Self-service

3Reliability

If all pages of data are transferred during virtual machine migration, then complete data consistency is achieved, but migration time increases

Engineering Contradiction:
Improvedata consistencyVSAvoidmigration time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system extracts and transfers only the necessary portion of data during migration. By using doorbell pages to track which pages have been modified (dirty pages), the migration process identifies and transfers only those specific pages that contain changes, rather than copying entire pages or all data. This extraction approach maintains data consistency for migrated elements while significantly reducing overall migration time by leaving unchanged data on the source system.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The system performs preliminary identification of dirty pages before migration using doorbell page monitoring. The hypervisor tracks modifications to virtual machine memory pages through doorbell page writes, pre-identifying which pages need to be migrated. This preliminary action allows the migration process to focus only on necessary data, achieving complete data consistency for migrated elements while minimizing migration time by excluding unchanged data from the transfer process.

Inventive Principle:
Principle #10Preliminary action

4Speed

If doorbell pages are used to monitor queues, then request detection speed improves, but system complexity increases

Engineering Contradiction:
Improverequest detection speedVSAvoidsystem complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The doorbell page mechanism serves multiple functions within a single structure: it acts as a notification trigger, a modification tracker, and a migration identifier. By using the same doorbell page infrastructure for queue monitoring and data consistency tracking, the system achieves fast request detection without proportionally increasing complexity. The universal doorbell page approach consolidates multiple monitoring functions into one mechanism, improving speed while limiting the growth of system complexity.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS9747122B2Virtual machine systems
Publication Date: 2017.08.29 GOOGLE LLC
  • US9747122B2 patent drawing
  • US9747122B2 patent drawing
  • US9747122B2 patent drawing

AI summary

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for memory requests by a virtual machine. One of the methods includes generating a plurality of doorbell pages for a plurality of virtual machines executing on a device, providing, to each of the plurality of virtual machines, access to a respective one of the plurality of doorbell pages that identifies a queue that stores requests from the respective virtual machine, receiving, from a particular one of the plurality of doorbell pages, a notification that the respective queue has a request from the respective virtual machine, and in response to receiving the notification that the respective queue has a request from the respective virtual machine, causing a processor to process the respective queue for the respective virtual machine.