Hyper-threading Host-Guest Communication via Interrupts

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing virtualization systems face inefficiencies in host-guest communication, particularly due to the need for virtual machine exits and increased power consumption from continuous polling of shared memory, which can lead to significant overhead and resource waste.

Innovation Solution

Implementing hyper-threading technology within a physical processor to enable efficient communication between a master and slave hyper-thread, allowing concurrent execution of tasks without requiring virtual machine exits, by using shared memory and interrupt signals to manage task execution on the slave hyper-thread.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If continuous polling of shared memory is used for host-guest communication, then communication reliability is improved, but power consumption and CPU resource waste increase

Engineering Contradiction:
Improvehost-guest communication reliabilityVSAvoidpower consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent replaces continuous polling with periodic interrupt-driven communication. The host thread sends interrupts to the guest thread only when data is available in shared memory, eliminating continuous CPU activation and associated power consumption while maintaining communication reliability.

Inventive Principle:
Principle #19Periodic action

Solution Approach 2:

The guest thread autonomously responds to interrupts by checking shared memory and processing data when notified, rather than requiring continuous host polling. This self-service mechanism reduces CPU resource waste on both host and guest sides while maintaining reliable communication.

Inventive Principle:
Principle #25Self-service

2Ease of operation

If virtual machine exits are used for host-guest communication, then communication control is improved, but virtualization overhead increases

Engineering Contradiction:
Improvecommunication controlVSAvoidvirtualization overhead
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent introduces shared memory as an intermediary between host and guest, allowing direct data exchange without VM exits. The interrupt mechanism serves as a mediator to coordinate communication, eliminating the need for complex VM exit/entry sequences while maintaining controlled communication.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The communication mechanism is segmented into independent components: shared memory for data storage, interrupt signals for notification, and separate host/guest threads for processing. This segmentation allows communication to proceed without full VM exits, reducing virtualization overhead while maintaining control.

Inventive Principle:
Principle #1Segmentation

3Loss of energy

If guest is halted for polling operations, then resource conservation is improved, but system efficiency decreases

Engineering Contradiction:
Improveresource conservationVSAvoidsystem efficiency
Core Design Contradiction:
Loss of energyVSProductivity

Solution Approach 1:

The patent enables continuous guest execution by using interrupt-driven communication instead of halting the guest for polling operations. The guest thread remains active and responsive, processing data immediately when interrupts indicate availability, thereby maintaining system efficiency while conserving resources through on-demand processing.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS10152341B2Hyper-threading based host-guest communication
Publication Date: 2018.12.11 RED HAT ISRAEL
  • US10152341B2 patent drawing
  • US10152341B2 patent drawing
  • US10152341B2 patent drawing

AI summary

A system and method for hyper-threading based host-guest communication includes storing, by a guest, at least one request on a shared memory. A physical processor, in communication with the shared memory, includes a first hyper-thread and a second hyper-thread. The method also includes starting, by a hypervisor, execution of a VCPU on the first hyper-thread and sending a first interrupt to the second hyper-thread to signal a request to execute a slave task on the second hyper-thread. The slave task includes an instruction to poll the shared memory. The method further includes executing, by the second hyper-thread, the slave task on the second hyper-thread and executing the at least one request stored on the shared memory.